home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-2.iso / Files II / Publish / A / Alpha 5.96.sit / Tcl / SystemCode / misc.tcl < prev    next >
MacBinary  |  1994-08-30  |  15.1 KB  |  [TEXT/ALFA]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Tue Aug 30 23:21:25 1994, modified Tue Aug 30 23:21:25 1994, creator Alpha editor, type ASCII, 14428 bytes "misc.tcl" , at 0x38dc 786 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[ALFA]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 08 6d 69 73 63 2e 74 | 63 6c 00 00 00 00 00 00 |..misc.t|cl......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 41 4c 46 | 41 01 00 00 00 00 00 00 |.TEXTALF|A.......|
|00000050| 00 00 00 00 00 38 5c 00 | 00 03 12 aa 89 a7 b5 aa |.....8\.|........|
|00000060| 89 a7 b5 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 29 a6 00 00 |........|....)...|
|00000080| 23 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |#=======|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 0d 23 20 49 |========|====.# I|
|000000d0| 6e 66 6f 72 6d 61 74 69 | 6f 6e 20 61 62 6f 75 74 |nformati|on about|
|000000e0| 20 61 20 73 65 6c 65 63 | 74 69 6f 6e 20 6f 72 20 | a selec|tion or |
|000000f0| 77 69 6e 64 6f 77 2e 0d | 23 3d 3d 3d 3d 3d 3d 3d |window..|#=======|
|00000100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000120| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000140| 3d 3d 3d 3d 0d 70 72 6f | 63 20 77 6f 72 64 43 6f |====.pro|c wordCo|
|00000150| 75 6e 74 20 7b 7d 20 7b | 0d 09 69 66 20 7b 5b 73 |unt {} {|..if {[s|
|00000160| 65 74 20 63 68 61 72 73 | 20 5b 65 78 70 72 20 7b |et chars| [expr {|
|00000170| 5b 73 65 6c 45 6e 64 5d | 20 2d 20 5b 67 65 74 50 |[selEnd]| - [getP|
|00000180| 6f 73 5d 7d 5d 5d 7d 20 | 7b 0d 09 09 73 65 74 20 |os]}]]} |{...set |
|00000190| 6c 69 6e 65 73 20 5b 65 | 78 70 72 20 7b 5b 6c 69 |lines [e|xpr {[li|
|000001a0| 6e 64 65 78 20 5b 70 6f | 73 54 6f 52 6f 77 43 6f |ndex [po|sToRowCo|
|000001b0| 6c 20 5b 73 65 6c 45 6e | 64 5d 5d 20 30 5d 20 2d |l [selEn|d]] 0] -|
|000001c0| 20 5b 6c 69 6e 64 65 78 | 20 5b 70 6f 73 54 6f 52 | [lindex| [posToR|
|000001d0| 6f 77 43 6f 6c 20 5b 67 | 65 74 50 6f 73 5d 5d 20 |owCol [g|etPos]] |
|000001e0| 30 5d 7d 5d 0d 09 09 73 | 65 74 20 74 65 78 74 20 |0]}]...s|et text |
|000001f0| 5b 67 65 74 53 65 6c 65 | 63 74 5d 0d 09 7d 20 65 |[getSele|ct]..} e|
|00000200| 6c 73 65 20 7b 0d 09 09 | 73 65 74 20 63 68 61 72 |lse {...|set char|
|00000210| 73 20 5b 6d 61 78 50 6f | 73 5d 0d 09 09 73 65 74 |s [maxPo|s]...set|
|00000220| 20 6c 69 6e 65 73 20 5b | 6c 69 6e 64 65 78 20 5b | lines [|lindex [|
|00000230| 70 6f 73 54 6f 52 6f 77 | 43 6f 6c 20 24 63 68 61 |posToRow|Col $cha|
|00000240| 72 73 5d 20 30 5d 0d 09 | 09 73 65 74 20 74 65 78 |rs] 0]..|.set tex|
|00000250| 74 20 5b 67 65 74 54 65 | 78 74 20 30 20 5b 6d 61 |t [getTe|xt 0 [ma|
|00000260| 78 50 6f 73 5d 5d 0d 09 | 7d 0d 09 69 66 20 7b 5b |xPos]]..|}..if {[|
|00000270| 72 65 67 73 75 62 20 2d | 61 6c 6c 20 7b 5b 21 3d |regsub -|all {[!=|
|00000280| 3b 2e 2c 5c 28 5c 23 5c | 3d 5c 29 3a 5c 7b 5c 22 |;.,\(\#\|=\):\{\"|
|00000290| 5c 7d 5d 7d 20 24 74 65 | 78 74 20 22 20 22 20 72 |\}]} $te|xt " " r|
|000002a0| 65 74 5d 7d 20 7b 0d 09 | 09 73 65 74 20 77 6f 72 |et]} {..|.set wor|
|000002b0| 64 73 20 5b 6c 6c 65 6e | 67 74 68 20 24 72 65 74 |ds [llen|gth $ret|
|000002c0| 5d 0d 09 7d 20 65 6c 73 | 65 20 7b 0d 09 09 73 65 |]..} els|e {...se|
|000002d0| 74 20 77 6f 72 64 73 20 | 5b 6c 6c 65 6e 67 74 68 |t words |[llength|
|000002e0| 20 24 74 65 78 74 5d 0d | 09 7d 0d 09 61 6c 65 72 | $text].|.}..aler|
|000002f0| 74 6e 6f 74 65 20 5b 66 | 6f 72 6d 61 74 20 22 25 |tnote [f|ormat "%|
|00000300| 64 20 63 68 61 72 73 2c | 20 25 64 20 77 6f 72 64 |d chars,| %d word|
|00000310| 73 2c 20 25 64 20 6c 69 | 6e 65 73 22 20 24 63 68 |s, %d li|nes" $ch|
|00000320| 61 72 73 20 24 77 6f 72 | 64 73 20 24 6c 69 6e 65 |ars $wor|ds $line|
|00000330| 73 5d 0d 7d 0d 0d 23 20 | 70 72 6f 63 20 6d 61 74 |s].}..# |proc mat|
|00000340| 63 68 69 6e 67 4c 69 6e | 65 73 20 7b 7d 20 7b 0d |chingLin|es {} {.|
|00000350| 23 20 09 69 66 20 5b 63 | 61 74 63 68 20 7b 70 72 |# .if [c|atch {pr|
|00000360| 6f 6d 70 74 20 22 52 65 | 67 75 6c 61 72 20 65 78 |ompt "Re|gular ex|
|00000370| 70 72 65 73 73 69 6f 6e | 3a 22 20 22 22 7d 20 72 |pression|:" ""} r|
|00000380| 65 67 5d 20 72 65 74 75 | 72 6e 0d 23 20 09 69 66 |eg] retu|rn.# .if|
|00000390| 20 7b 21 5b 73 74 72 69 | 6e 67 20 6c 65 6e 67 74 | {![stri|ng lengt|
|000003a0| 68 20 24 72 65 67 5d 7d | 20 72 65 74 75 72 6e 0d |h $reg]}| return.|
|000003b0| 23 20 09 73 65 74 20 72 | 65 67 20 5e 2e 2a 24 72 |# .set r|eg ^.*$r|
|000003c0| 65 67 2e 2a 24 0d 23 20 | 09 73 65 74 20 70 6f 73 |eg.*$.# |.set pos|
|000003d0| 20 5b 67 65 74 50 6f 73 | 5d 0d 23 20 09 73 65 74 | [getPos|].# .set|
|000003e0| 20 6d 61 74 63 68 65 73 | 20 30 0d 23 20 09 77 68 | matches| 0.# .wh|
|000003f0| 69 6c 65 20 7b 21 5b 63 | 61 74 63 68 20 7b 73 65 |ile {![c|atch {se|
|00000400| 61 72 63 68 20 2d 66 20 | 31 20 2d 72 20 31 20 2d |arch -f |1 -r 1 -|
|00000410| 6d 20 30 20 2d 69 20 31 | 20 24 72 65 67 20 24 70 |m 0 -i 1| $reg $p|
|00000420| 6f 73 7d 20 6d 74 63 68 | 5d 7d 20 7b 0d 23 20 09 |os} mtch|]} {.# .|
|00000430| 09 61 70 70 65 6e 64 20 | 6c 69 6e 65 73 20 22 5c |.append |lines "\|
|00000440| 72 22 20 5b 66 6f 72 6d | 61 74 20 22 25 34 64 3a |r" [form|at "%4d:|
|00000450| 20 22 20 5b 6c 69 6e 64 | 65 78 20 5b 70 6f 73 54 | " [lind|ex [posT|
|00000460| 6f 52 6f 77 43 6f 6c 20 | 5b 6c 69 6e 64 65 78 20 |oRowCol |[lindex |
|00000470| 24 6d 74 63 68 20 30 5d | 5d 20 30 5d 5d 20 5b 65 |$mtch 0]|] 0]] [e|
|00000480| 76 61 6c 20 67 65 74 54 | 65 78 74 20 24 6d 74 63 |val getT|ext $mtc|
|00000490| 68 5d 0d 23 20 09 09 73 | 65 74 20 70 6f 73 20 5b |h].# ..s|et pos [|
|000004a0| 6c 69 6e 64 65 78 20 24 | 6d 74 63 68 20 31 5d 0d |lindex $|mtch 1].|
|000004b0| 23 20 09 09 69 6e 63 72 | 20 6d 61 74 63 68 65 73 |# ..incr| matches|
|000004c0| 0d 23 20 09 7d 0d 23 20 | 09 6e 65 77 0d 23 20 09 |.# .}.# |.new.# .|
|000004d0| 69 6e 73 65 72 74 54 65 | 78 74 20 5b 66 6f 72 6d |insertTe|xt [form|
|000004e0| 61 74 20 22 25 64 20 6d | 61 74 63 68 69 6e 67 20 |at "%d m|atching |
|000004f0| 6c 69 6e 65 73 5c 72 2d | 2d 2d 2d 2d 22 20 24 6d |lines\r-|----" $m|
|00000500| 61 74 63 68 65 73 5d 20 | 24 6c 69 6e 65 73 20 22 |atches] |$lines "|
|00000510| 5c 72 22 0d 23 20 7d 0d | 70 72 6f 63 20 6d 61 74 |\r".# }.|proc mat|
|00000520| 63 68 69 6e 67 4c 69 6e | 65 73 20 7b 7d 20 7b 0d |chingLin|es {} {.|
|00000530| 09 69 66 20 5b 63 61 74 | 63 68 20 7b 70 72 6f 6d |.if [cat|ch {prom|
|00000540| 70 74 20 22 52 65 67 75 | 6c 61 72 20 65 78 70 72 |pt "Regu|lar expr|
|00000550| 65 73 73 69 6f 6e 3a 22 | 20 22 22 7d 20 72 65 67 |ession:"| ""} reg|
|00000560| 5d 20 72 65 74 75 72 6e | 0d 09 69 66 20 7b 21 5b |] return|..if {![|
|00000570| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 72 |string l|ength $r|
|00000580| 65 67 5d 7d 20 72 65 74 | 75 72 6e 0d 09 73 65 74 |eg]} ret|urn..set|
|00000590| 20 72 65 67 20 5e 2e 2a | 24 72 65 67 2e 2a 24 0d | reg ^.*|$reg.*$.|
|000005a0| 09 73 65 74 20 70 6f 73 | 20 30 0d 09 73 65 74 20 |.set pos| 0..set |
|000005b0| 66 69 6c 65 4e 61 6d 65 | 20 5b 6c 69 6e 64 65 78 |fileName| [lindex|
|000005c0| 20 5b 77 69 6e 4e 61 6d | 65 73 20 2d 66 5d 20 30 | [winNam|es -f] 0|
|000005d0| 5d 0d 09 73 65 74 20 6d | 61 74 63 68 65 73 20 30 |]..set m|atches 0|
|000005e0| 0d 09 77 68 69 6c 65 20 | 7b 21 5b 63 61 74 63 68 |..while |{![catch|
|000005f0| 20 7b 73 65 61 72 63 68 | 20 2d 66 20 31 20 2d 72 | {search| -f 1 -r|
|00000600| 20 31 20 2d 6d 20 30 20 | 2d 69 20 31 20 24 72 65 | 1 -m 0 |-i 1 $re|
|00000610| 67 20 24 70 6f 73 7d 20 | 6d 74 63 68 5d 7d 20 7b |g $pos} |mtch]} {|
|00000620| 0d 09 09 61 70 70 65 6e | 64 20 6c 69 6e 65 73 20 |...appen|d lines |
|00000630| 22 5c 72 22 20 5b 66 6f | 72 6d 61 74 20 22 4c 69 |"\r" [fo|rmat "Li|
|00000640| 6e 65 20 25 64 3a 20 22 | 20 5b 6c 69 6e 64 65 78 |ne %d: "| [lindex|
|00000650| 20 5b 70 6f 73 54 6f 52 | 6f 77 43 6f 6c 20 5b 6c | [posToR|owCol [l|
|00000660| 69 6e 64 65 78 20 24 6d | 74 63 68 20 30 5d 5d 20 |index $m|tch 0]] |
|00000670| 30 5d 5d 20 5b 65 76 61 | 6c 20 67 65 74 54 65 78 |0]] [eva|l getTex|
|00000680| 74 20 24 6d 74 63 68 5d | 20 22 5c 74 5c 74 5c 74 |t $mtch]| "\t\t\t|
|00000690| 5c 74 5c 74 5c 74 5c 74 | 5c 74 5c 74 5c 74 5c 74 |\t\t\t\t|\t\t\t\t|
|000006a0| 5c 74 5c 74 5c 74 5c 74 | 5c 74 5c 74 5c 74 5c 74 |\t\t\t\t|\t\t\t\t|
|000006b0| 5c 74 5c 74 5c 74 5c 74 | 5c 74 5c 74 5c 74 5c 74 |\t\t\t\t|\t\t\t\t|
|000006c0| 5c 74 5c 74 5c 74 b0 24 | 66 69 6c 65 4e 61 6d 65 |\t\t\t.$|fileName|
|000006d0| 22 0d 09 09 73 65 74 20 | 70 6f 73 20 5b 6c 69 6e |"...set |pos [lin|
|000006e0| 64 65 78 20 24 6d 74 63 | 68 20 31 5d 0d 09 09 69 |dex $mtc|h 1]...i|
|000006f0| 6e 63 72 20 6d 61 74 63 | 68 65 73 0d 09 7d 0d 09 |ncr matc|hes..}..|
|00000700| 6e 65 77 20 2d 6e 20 7b | 2a 20 4d 61 74 63 68 69 |new -n {|* Matchi|
|00000710| 6e 67 20 4c 69 6e 65 73 | 20 2a 7d 0d 09 69 6e 73 |ng Lines| *}..ins|
|00000720| 65 72 74 54 65 78 74 20 | 5b 66 6f 72 6d 61 74 20 |ertText |[format |
|00000730| 22 25 64 20 6d 61 74 63 | 68 69 6e 67 20 6c 69 6e |"%d matc|hing lin|
|00000740| 65 73 20 28 3c 63 72 3e | 20 74 6f 20 67 6f 20 74 |es (<cr>| to go t|
|00000750| 6f 20 6d 61 74 63 68 29 | 5c 72 2d 2d 2d 2d 2d 22 |o match)|\r-----"|
|00000760| 20 24 6d 61 74 63 68 65 | 73 5d 20 24 6c 69 6e 65 | $matche|s] $line|
|00000770| 73 20 22 5c 72 22 0d 09 | 73 65 6c 65 63 74 20 5b |s "\r"..|select [|
|00000780| 6e 65 78 74 4c 69 6e 65 | 53 74 61 72 74 20 5b 6e |nextLine|Start [n|
|00000790| 65 78 74 4c 69 6e 65 53 | 74 61 72 74 20 30 5d 5d |extLineS|tart 0]]|
|000007a0| 20 5b 6e 65 78 74 4c 69 | 6e 65 53 74 61 72 74 20 | [nextLi|neStart |
|000007b0| 5b 6e 65 78 74 4c 69 6e | 65 53 74 61 72 74 20 5b |[nextLin|eStart [|
|000007c0| 6e 65 78 74 4c 69 6e 65 | 53 74 61 72 74 20 30 5d |nextLine|Start 0]|
|000007d0| 5d 5d 0d 09 0d 09 67 6c | 6f 62 61 6c 20 77 69 6e |]]....gl|obal win|
|000007e0| 4d 6f 64 65 73 0d 09 73 | 65 74 20 6e 61 6d 65 20 |Modes..s|et name |
|000007f0| 5b 6c 69 6e 64 65 78 20 | 5b 77 69 6e 4e 61 6d 65 |[lindex |[winName|
|00000800| 73 5d 20 30 5d 0d 09 63 | 68 61 6e 67 65 4d 6f 64 |s] 0]..c|hangeMod|
|00000810| 65 20 5b 73 65 74 20 77 | 69 6e 4d 6f 64 65 73 28 |e [set w|inModes(|
|00000820| 24 6e 61 6d 65 29 20 42 | 72 77 73 5d 0d 09 73 65 |$name) B|rws]..se|
|00000830| 74 57 69 6e 49 6e 66 6f | 20 64 69 72 74 79 20 30 |tWinInfo| dirty 0|
|00000840| 0d 09 73 65 74 57 69 6e | 49 6e 66 6f 20 72 65 61 |..setWin|Info rea|
|00000850| 64 2d 6f 6e 6c 79 20 31 | 0d 7d 0d 0d 23 3d 3d 3d |d-only 1|.}..#===|
|00000860| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000870| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000880| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000890| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000008a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 23 20 52 61 6e |========|==.# Ran|
|000008b0| 64 6f 6d 20 66 75 6e 63 | 74 69 6f 6e 73 2e 0d 23 |dom func|tions..#|
|000008c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000008d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000008e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000008f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000900| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 0d 23 |========|=====..#|
|00000910| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000920| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000930| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000940| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000950| 2a 2a 2a 2a 2a 2a 2a 0d | 23 20 20 20 20 20 20 20 |*******.|# |
|00000960| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000990| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|000009a0| 0d 23 20 20 20 43 6f 6d | 6d 65 6e 74 20 62 6f 78 |.# Com|ment box|
|000009b0| 20 61 6e 64 20 75 6e 63 | 6f 6d 6d 65 6e 74 20 62 | and unc|omment b|
|000009c0| 6f 78 20 63 6f 75 72 74 | 65 73 79 20 6f 66 20 49 |ox court|esy of I|
|000009d0| 67 6f 72 20 4d 69 6b 6f | 6c 69 63 2d 54 6f 72 72 |gor Miko|lic-Torr|
|000009e0| 65 69 72 61 2e 20 20 20 | 2a 0d 23 20 20 20 20 20 |eira. |*.# |
|000009f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a30| 20 2a 0d 23 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *.#****|********|
|00000a40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2f 0d 0d 70 72 6f |********|**/..pro|
|00000a80| 63 20 63 6f 6d 6d 65 6e | 74 42 6f 78 20 7b 7d 20 |c commen|tBox {} |
|00000a90| 7b 0d 0d 23 20 50 72 65 | 6c 69 6d 69 6e 61 72 69 |{..# Pre|liminari|
|00000aa0| 65 73 0d 0d 09 69 66 20 | 7b 5b 67 65 74 50 6f 73 |es...if |{[getPos|
|00000ab0| 5d 20 3d 3d 20 5b 73 65 | 6c 45 6e 64 5d 7d 20 7b |] == [se|lEnd]} {|
|00000ac0| 0d 09 09 61 6c 65 72 74 | 6e 6f 74 65 20 22 4d 75 |...alert|note "Mu|
|00000ad0| 73 74 20 73 65 6c 65 63 | 74 20 72 65 67 69 6f 6e |st selec|t region|
|00000ae0| 20 74 6f 20 62 65 20 63 | 6f 6d 6d 65 6e 74 65 64 | to be c|ommented|
|00000af0| 2e 22 0d 09 09 72 65 74 | 75 72 6e 0d 09 7d 0d 09 |."...ret|urn..}..|
|00000b00| 67 6c 6f 62 61 6c 20 6c | 61 73 74 4d 6f 64 65 0d |global l|astMode.|
|00000b10| 09 77 61 74 63 68 43 75 | 72 73 6f 72 0d 09 0d 23 |.watchCu|rsor...#|
|00000b20| 20 53 65 74 20 77 68 61 | 74 20 74 68 65 20 63 6f | Set wha|t the co|
|00000b30| 6d 6d 65 6e 74 20 62 6c | 6f 63 6b 20 77 69 6c 6c |mment bl|ock will|
|00000b40| 20 6c 6f 6f 6b 20 6c 69 | 6b 65 0d 0d 09 63 61 73 | look li|ke...cas|
|00000b50| 65 20 24 6c 61 73 74 4d | 6f 64 65 20 69 6e 20 7b |e $lastM|ode in {|
|00000b60| 0d 09 09 22 54 65 78 74 | 22 20 7b 0d 09 09 09 73 |..."Text|" {....s|
|00000b70| 65 74 20 62 65 67 43 6f | 6d 6d 65 6e 74 20 22 21 |et begCo|mment "!|
|00000b80| 22 0d 09 09 09 73 65 74 | 20 62 65 67 43 6f 6d 4c |"....set| begComL|
|00000b90| 65 6e 20 31 0d 09 09 09 | 73 65 74 20 65 6e 64 43 |en 1....|set endC|
|00000ba0| 6f 6d 6d 65 6e 74 20 22 | 21 22 0d 09 09 09 73 65 |omment "|!"....se|
|00000bb0| 74 20 65 6e 64 43 6f 6d | 4c 65 6e 20 31 0d 09 09 |t endCom|Len 1...|
|00000bc0| 09 73 65 74 20 66 69 6c | 6c 43 68 61 72 20 22 21 |.set fil|lChar "!|
|00000bd0| 22 0d 09 09 09 73 65 74 | 20 73 70 61 63 65 4f 66 |"....set| spaceOf|
|00000be0| 66 73 65 74 20 33 0d 09 | 09 7d 0d 09 09 22 46 6f |fset 3..|.}..."Fo|
|00000bf0| 72 74 22 20 7b 0d 09 09 | 09 73 65 74 20 62 65 67 |rt" {...|.set beg|
|00000c00| 43 6f 6d 6d 65 6e 74 20 | 22 43 22 0d 09 09 09 73 |Comment |"C"....s|
|00000c10| 65 74 20 62 65 67 43 6f | 6d 4c 65 6e 20 31 0d 09 |et begCo|mLen 1..|
|00000c20| 09 09 73 65 74 20 65 6e | 64 43 6f 6d 6d 65 6e 74 |..set en|dComment|
|00000c30| 20 22 43 22 0d 09 09 09 | 73 65 74 20 65 6e 64 43 | "C"....|set endC|
|00000c40| 6f 6d 4c 65 6e 20 31 0d | 09 09 09 73 65 74 20 66 |omLen 1.|...set f|
|00000c50| 69 6c 6c 43 68 61 72 20 | 22 43 22 0d 09 09 09 73 |illChar |"C"....s|
|00000c60| 65 74 20 73 70 61 63 65 | 4f 66 66 73 65 74 20 33 |et space|Offset 3|
|00000c70| 0d 09 09 7d 0d 09 09 22 | 54 63 6c 22 20 7b 0d 09 |...}..."|Tcl" {..|
|00000c80| 09 09 73 65 74 20 62 65 | 67 43 6f 6d 6d 65 6e 74 |..set be|gComment|
|00000c90| 20 22 23 22 0d 09 09 09 | 73 65 74 20 62 65 67 43 | "#"....|set begC|
|00000ca0| 6f 6d 4c 65 6e 20 31 0d | 09 09 09 73 65 74 20 65 |omLen 1.|...set e|
|00000cb0| 6e 64 43 6f 6d 6d 65 6e | 74 20 22 23 22 0d 09 09 |ndCommen|t "#"...|
|00000cc0| 09 73 65 74 20 65 6e 64 | 43 6f 6d 4c 65 6e 20 31 |.set end|ComLen 1|
|00000cd0| 0d 09 09 09 73 65 74 20 | 66 69 6c 6c 43 68 61 72 |....set |fillChar|
|00000ce0| 20 22 23 22 0d 09 09 09 | 73 65 74 20 73 70 61 63 | "#"....|set spac|
|00000cf0| 65 4f 66 66 73 65 74 20 | 33 0d 09 09 7d 0d 09 09 |eOffset |3...}...|
|00000d00| 22 43 22 20 7b 0d 09 09 | 09 73 65 74 20 62 65 67 |"C" {...|.set beg|
|00000d10| 43 6f 6d 6d 65 6e 74 20 | 22 2f 2a 22 0d 09 09 09 |Comment |"/*"....|
|00000d20| 73 65 74 20 62 65 67 43 | 6f 6d 4c 65 6e 20 32 0d |set begC|omLen 2.|
|00000d30| 09 09 09 73 65 74 20 65 | 6e 64 43 6f 6d 6d 65 6e |...set e|ndCommen|
|00000d40| 74 20 22 2a 2f 22 0d 09 | 09 09 73 65 74 20 65 6e |t "*/"..|..set en|
|00000d50| 64 43 6f 6d 4c 65 6e 20 | 32 0d 09 09 09 73 65 74 |dComLen |2....set|
|00000d60| 20 66 69 6c 6c 43 68 61 | 72 20 22 2a 22 0d 09 09 | fillCha|r "*"...|
|00000d70| 09 73 65 74 20 73 70 61 | 63 65 4f 66 66 73 65 74 |.set spa|ceOffset|
|00000d80| 20 33 0d 09 09 7d 0d 09 | 09 22 43 2b 2b 22 20 7b | 3...}..|."C++" {|
|00000d90| 0d 09 09 09 73 65 74 20 | 62 65 67 43 6f 6d 6d 65 |....set |begComme|
|00000da0| 6e 74 20 22 2f 2a 22 0d | 09 09 09 73 65 74 20 62 |nt "/*".|...set b|
|00000db0| 65 67 43 6f 6d 4c 65 6e | 20 32 0d 09 09 09 73 65 |egComLen| 2....se|
|00000dc0| 74 20 65 6e 64 43 6f 6d | 6d 65 6e 74 20 22 2a 2f |t endCom|ment "*/|
|00000dd0| 22 0d 09 09 09 73 65 74 | 20 65 6e 64 43 6f 6d 4c |"....set| endComL|
|00000de0| 65 6e 20 32 0d 09 09 09 | 73 65 74 20 66 69 6c 6c |en 2....|set fill|
|00000df0| 43 68 61 72 20 22 2a 22 | 0d 09 09 09 73 65 74 20 |Char "*"|....set |
|00000e00| 73 70 61 63 65 4f 66 66 | 73 65 74 20 33 0d 09 09 |spaceOff|set 3...|
|00000e10| 7d 0d 09 09 64 65 66 61 | 75 6c 74 20 7b 0d 09 09 |}...defa|ult {...|
|00000e20| 09 61 6c 65 72 74 6e 6f | 74 65 20 22 49 20 64 6f |.alertno|te "I do|
|00000e30| 6e 27 74 20 6b 6e 6f 77 | 20 77 68 61 74 20 63 6f |n't know| what co|
|00000e40| 6d 6d 65 6e 74 73 20 73 | 68 6f 75 6c 64 20 6c 6f |mments s|hould lo|
|00000e50| 6f 6b 20 6c 69 6b 65 20 | 69 6e 20 74 68 69 73 20 |ok like |in this |
|00000e60| 6d 6f 64 65 2e 20 20 53 | 6f 72 72 79 2e 22 0d 09 |mode. S|orry."..|
|00000e70| 09 09 72 65 74 75 72 6e | 0d 09 09 7d 0d 09 7d 0d |..return|...}..}.|
|00000e80| 09 73 65 74 20 61 53 70 | 61 63 65 20 22 20 22 0d |.set aSp|ace " ".|
|00000e90| 0d 23 20 46 69 72 73 74 | 20 6d 61 6b 65 20 73 75 |.# First| make su|
|00000ea0| 72 65 20 77 65 20 67 72 | 61 62 20 61 20 66 75 6c |re we gr|ab a ful|
|00000eb0| 6c 20 62 6c 6f 63 6b 20 | 6f 66 20 6c 69 6e 65 73 |l block |of lines|
|00000ec0| 20 61 6e 64 20 61 64 6a | 75 73 74 20 68 69 67 68 | and adj|ust high|
|00000ed0| 6c 69 67 68 74 0d 0d 09 | 73 65 74 20 73 74 61 72 |light...|set star|
|00000ee0| 74 20 5b 67 65 74 50 6f | 73 5d 0d 09 73 65 74 20 |t [getPo|s]..set |
|00000ef0| 73 74 61 72 74 20 5b 6c | 69 6e 65 53 74 61 72 74 |start [l|ineStart|
|00000f00| 20 24 73 74 61 72 74 5d | 0d 09 73 65 74 20 65 6e | $start]|..set en|
|00000f10| 64 20 5b 73 65 6c 45 6e | 64 5d 0d 09 73 65 74 20 |d [selEn|d]..set |
|00000f20| 65 6e 64 20 5b 6e 65 78 | 74 4c 69 6e 65 53 74 61 |end [nex|tLineSta|
|00000f30| 72 74 20 5b 65 78 70 72 | 20 24 65 6e 64 2d 31 5d |rt [expr| $end-1]|
|00000f40| 5d 0d 09 73 65 6c 65 63 | 74 20 24 73 74 61 72 74 |]..selec|t $start|
|00000f50| 20 24 65 6e 64 0d 0d 23 | 20 4e 6f 77 20 67 65 74 | $end..#| Now get|
|00000f60| 20 72 69 64 20 6f 66 20 | 61 6e 79 20 74 61 62 73 | rid of |any tabs|
|00000f70| 0d 09 0d 09 69 66 20 7b | 20 24 65 6e 64 20 3c 20 |....if {| $end < |
|00000f80| 5b 6d 61 78 50 6f 73 5d | 20 7d 20 74 68 65 6e 20 |[maxPos]| } then |
|00000f90| 7b 0d 09 09 63 72 65 61 | 74 65 54 4d 61 72 6b 20 |{...crea|teTMark |
|00000fa0| 73 74 6f 70 43 6f 6d 6d | 65 6e 74 20 5b 65 78 70 |stopComm|ent [exp|
|00000fb0| 72 20 24 65 6e 64 2b 31 | 5d 0d 09 09 74 61 62 73 |r $end+1|]...tabs|
|00000fc0| 54 6f 53 70 61 63 65 73 | 0d 09 09 67 6f 74 6f 54 |ToSpaces|...gotoT|
|00000fd0| 4d 61 72 6b 20 73 74 6f | 70 43 6f 6d 6d 65 6e 74 |Mark sto|pComment|
|00000fe0| 0d 09 09 73 65 74 20 65 | 6e 64 20 5b 65 78 70 72 |...set e|nd [expr|
|00000ff0| 20 5b 67 65 74 50 6f 73 | 5d 2d 31 5d 0d 09 09 72 | [getPos|]-1]...r|
|00001000| 65 6d 6f 76 65 54 4d 61 | 72 6b 20 73 74 6f 70 43 |emoveTMa|rk stopC|
|00001010| 6f 6d 6d 65 6e 74 0d 09 | 7d 20 65 6c 73 65 20 7b |omment..|} else {|
|00001020| 0d 09 09 74 61 62 73 54 | 6f 53 70 61 63 65 73 0d |...tabsT|oSpaces.|
|00001030| 09 09 73 65 74 20 65 6e | 64 20 5b 6d 61 78 50 6f |..set en|d [maxPo|
|00001040| 73 5d 0d 09 7d 0d 09 73 | 65 6c 65 63 74 20 24 73 |s]..}..s|elect $s|
|00001050| 74 61 72 74 20 24 65 6e | 64 0d 09 73 65 74 20 74 |tart $en|d..set t|
|00001060| 65 78 74 20 5b 67 65 74 | 54 65 78 74 20 24 73 74 |ext [get|Text $st|
|00001070| 61 72 74 20 24 65 6e 64 | 5d 0d 09 0d 23 20 4e 65 |art $end|]...# Ne|
|00001080| 78 74 20 74 75 72 6e 20 | 69 74 20 69 6e 74 6f 20 |xt turn |it into |
|00001090| 61 20 6c 69 73 74 20 6f | 66 20 6c 69 6e 65 73 2d |a list o|f lines-|
|000010a0| 2d 70 6f 73 73 69 62 6c | 79 20 64 72 6f 70 20 61 |-possibl|y drop a|
|000010b0| 6e 20 65 6d 70 74 79 20 | 27 6c 61 73 74 20 6c 69 |n empty |'last li|
|000010c0| 6e 65 27 0d 0d 09 73 65 | 74 20 6c 69 6e 65 4c 69 |ne'...se|t lineLi|
|000010d0| 73 74 20 5b 73 70 6c 69 | 74 20 24 74 65 78 74 20 |st [spli|t $text |
|000010e0| 22 5c 72 22 5d 0d 09 73 | 65 74 20 65 6d 70 74 79 |"\r"]..s|et empty|
|000010f0| 4c 69 6e 65 20 5b 6c 73 | 65 61 72 63 68 20 24 6c |Line [ls|earch $l|
|00001100| 69 6e 65 4c 69 73 74 20 | 7b 7d 5d 0d 09 69 66 20 |ineList |{}]..if |
|00001110| 7b 20 24 65 6d 70 74 79 | 4c 69 6e 65 20 21 3d 20 |{ $empty|Line != |
|00001120| 2d 31 20 7d 20 74 68 65 | 6e 20 7b 0d 09 09 73 65 |-1 } the|n {...se|
|00001130| 74 20 6e 75 6d 4c 69 6e | 65 73 20 5b 6c 6c 65 6e |t numLin|es [llen|
|00001140| 67 74 68 20 24 6c 69 6e | 65 4c 69 73 74 5d 0d 09 |gth $lin|eList]..|
|00001150| 09 73 65 74 20 6c 69 6e | 65 4c 69 73 74 20 5b 6c |.set lin|eList [l|
|00001160| 72 61 6e 67 65 20 24 6c | 69 6e 65 4c 69 73 74 20 |range $l|ineList |
|00001170| 30 20 5b 65 78 70 72 20 | 24 6e 75 6d 4c 69 6e 65 |0 [expr |$numLine|
|00001180| 73 2d 32 5d 5d 0d 09 7d | 0d 09 73 65 74 20 6e 75 |s-2]]..}|..set nu|
|00001190| 6d 4c 69 6e 65 73 20 5b | 6c 6c 65 6e 67 74 68 20 |mLines [|llength |
|000011a0| 24 6c 69 6e 65 4c 69 73 | 74 5d 0d 09 0d 23 20 46 |$lineLis|t]...# F|
|000011b0| 69 6e 64 20 74 68 65 20 | 6c 6f 6e 67 65 73 74 20 |ind the |longest |
|000011c0| 6c 69 6e 65 20 6c 65 6e | 67 74 68 20 61 6e 64 20 |line len|gth and |
|000011d0| 64 65 74 65 72 6d 69 6e | 65 20 74 68 65 20 6e 65 |determin|e the ne|
|000011e0| 77 20 6c 69 6e 65 20 6c | 65 6e 67 74 68 0d 0d 09 |w line l|ength...|
|000011f0| 73 65 74 20 6d 61 78 4c | 65 6e 67 74 68 20 30 0d |set maxL|ength 0.|
|00001200| 09 66 6f 72 65 61 63 68 | 20 74 68 69 73 4c 69 6e |.foreach| thisLin|
|00001210| 65 20 24 6c 69 6e 65 4c | 69 73 74 20 7b 0d 09 09 |e $lineL|ist {...|
|00001220| 73 65 74 20 74 68 69 73 | 4c 65 6e 67 74 68 20 5b |set this|Length [|
|00001230| 73 74 72 69 6e 67 20 6c | 65 6e 67 74 68 20 24 74 |string l|ength $t|
|00001240| 68 69 73 4c 69 6e 65 5d | 0d 09 09 69 66 20 7b 20 |hisLine]|...if { |
|00001250| 24 74 68 69 73 4c 65 6e | 67 74 68 20 3e 20 24 6d |$thisLen|gth > $m|
|00001260| 61 78 4c 65 6e 67 74 68 | 20 7d 20 74 68 65 6e 20 |axLength| } then |
|00001270| 7b 20 0d 09 09 09 73 65 | 74 20 6d 61 78 4c 65 6e |{ ....se|t maxLen|
|00001280| 67 74 68 20 24 74 68 69 | 73 4c 65 6e 67 74 68 20 |gth $thi|sLength |
|00001290| 0d 09 09 7d 0d 09 7d 0d | 09 73 65 74 20 6e 65 77 |...}..}.|.set new|
|000012a0| 4c 65 6e 67 74 68 20 5b | 65 78 70 72 20 7b 24 6d |Length [|expr {$m|
|000012b0| 61 78 4c 65 6e 67 74 68 | 20 2b 20 32 20 2b 20 32 |axLength| + 2 + 2|
|000012c0| 2a 24 73 70 61 63 65 4f | 66 66 73 65 74 7d 5d 0d |*$spaceO|ffset}].|
|000012d0| 09 0d 23 20 4e 6f 77 20 | 63 72 65 61 74 65 20 74 |..# Now |create t|
|000012e0| 68 65 20 74 6f 70 20 26 | 20 62 6f 74 74 6f 6d 20 |he top &| bottom |
|000012f0| 62 61 72 73 20 61 6e 64 | 20 61 20 62 6c 61 6e 6b |bars and| a blank|
|00001300| 20 6c 69 6e 65 0d 0d 09 | 73 65 74 20 74 6f 70 42 | line...|set topB|
|00001310| 61 72 20 24 62 65 67 43 | 6f 6d 6d 65 6e 74 0d 09 |ar $begC|omment..|
|00001320| 66 6f 72 20 7b 20 73 65 | 74 20 69 20 30 20 7d 20 |for { se|t i 0 } |
|00001330| 7b 20 24 69 20 3c 20 5b | 65 78 70 72 20 7b 24 6e |{ $i < [|expr {$n|
|00001340| 65 77 4c 65 6e 67 74 68 | 20 2d 20 24 62 65 67 43 |ewLength| - $begC|
|00001350| 6f 6d 4c 65 6e 7d 5d 20 | 7d 20 7b 20 69 6e 63 72 |omLen}] |} { incr|
|00001360| 20 69 20 7d 20 7b 0d 09 | 09 73 65 74 20 74 6f 70 | i } {..|.set top|
|00001370| 42 61 72 20 24 74 6f 70 | 42 61 72 24 66 69 6c 6c |Bar $top|Bar$fill|
|00001380| 43 68 61 72 0d 09 7d 0d | 09 73 65 74 20 62 6f 74 |Char..}.|.set bot|
|00001390| 42 61 72 20 22 22 0d 09 | 66 6f 72 20 7b 20 73 65 |Bar ""..|for { se|
|000013a0| 74 20 69 20 30 20 7d 20 | 7b 20 24 69 20 3c 20 5b |t i 0 } |{ $i < [|
|000013b0| 65 78 70 72 20 7b 24 6e | 65 77 4c 65 6e 67 74 68 |expr {$n|ewLength|
|000013c0| 20 2d 20 24 65 6e 64 43 | 6f 6d 4c 65 6e 7d 5d 20 | - $endC|omLen}] |
|000013d0| 7d 20 7b 20 69 6e 63 72 | 20 69 20 7d 20 7b 0d 09 |} { incr| i } {..|
|000013e0| 09 73 65 74 20 62 6f 74 | 42 61 72 20 24 62 6f 74 |.set bot|Bar $bot|
|000013f0| 42 61 72 24 66 69 6c 6c | 43 68 61 72 0d 09 7d 0d |Bar$fill|Char..}.|
|00001400| 09 73 65 74 20 62 6f 74 | 42 61 72 20 24 62 6f 74 |.set bot|Bar $bot|
|00001410| 42 61 72 24 65 6e 64 43 | 6f 6d 6d 65 6e 74 0d 09 |Bar$endC|omment..|
|00001420| 73 65 74 20 62 6c 61 6e | 6b 4c 69 6e 65 20 24 66 |set blan|kLine $f|
|00001430| 69 6c 6c 43 68 61 72 0d | 09 66 6f 72 20 7b 20 73 |illChar.|.for { s|
|00001440| 65 74 20 69 20 30 20 7d | 20 7b 20 24 69 20 3c 20 |et i 0 }| { $i < |
|00001450| 5b 65 78 70 72 20 7b 24 | 6e 65 77 4c 65 6e 67 74 |[expr {$|newLengt|
|00001460| 68 20 2d 20 32 7d 5d 20 | 7d 20 7b 20 69 6e 63 72 |h - 2}] |} { incr|
|00001470| 20 69 20 7d 20 7b 0d 09 | 09 73 65 74 20 62 6c 61 | i } {..|.set bla|
|00001480| 6e 6b 4c 69 6e 65 20 24 | 62 6c 61 6e 6b 4c 69 6e |nkLine $|blankLin|
|00001490| 65 24 61 53 70 61 63 65 | 0d 09 7d 0d 09 73 65 74 |e$aSpace|..}..set|
|000014a0| 20 62 6c 61 6e 6b 4c 69 | 6e 65 20 24 62 6c 61 6e | blankLi|ne $blan|
|000014b0| 6b 4c 69 6e 65 24 66 69 | 6c 6c 43 68 61 72 0d 09 |kLine$fi|llChar..|
|000014c0| 0d 23 20 46 6f 72 20 65 | 61 63 68 20 6c 69 6e 65 |.# For e|ach line|
|000014d0| 20 61 64 64 20 73 74 75 | 66 66 20 6f 6e 20 6c 65 | add stu|ff on le|
|000014e0| 66 74 20 61 6e 64 20 73 | 70 61 63 65 73 20 61 6e |ft and s|paces an|
|000014f0| 64 20 73 74 75 66 66 20 | 6f 6e 20 72 69 67 68 74 |d stuff |on right|
|00001500| 20 66 6f 72 20 62 6f 78 | 20 73 69 64 65 73 0d 23 | for box| sides.#|
|00001510| 20 61 6e 64 20 63 6f 6e | 63 61 74 65 6e 61 74 65 | and con|catenate|
|00001520| 20 65 76 65 72 79 74 68 | 69 6e 67 20 69 6e 74 6f | everyth|ing into|
|00001530| 20 27 74 65 78 74 27 2e | 20 20 53 74 61 72 74 20 | 'text'.| Start |
|00001540| 77 69 74 68 20 74 6f 70 | 42 61 72 3b 20 65 6e 64 |with top|Bar; end|
|00001550| 20 77 69 74 68 20 62 6f | 74 42 61 72 0d 0d 09 73 | with bo|tBar...s|
|00001560| 65 74 20 74 65 78 74 20 | 24 74 6f 70 42 61 72 5c |et text |$topBar\|
|00001570| 72 24 62 6c 61 6e 6b 4c | 69 6e 65 5c 72 0d 09 0d |r$blankL|ine\r...|
|00001580| 09 73 65 74 20 66 72 6f | 6e 74 53 74 75 66 66 20 |.set fro|ntStuff |
|00001590| 24 66 69 6c 6c 43 68 61 | 72 0d 09 73 65 74 20 62 |$fillCha|r..set b|
|000015a0| 61 63 6b 53 74 75 66 66 | 20 24 66 69 6c 6c 43 68 |ackStuff| $fillCh|
|000015b0| 61 72 0d 09 66 6f 72 20 | 7b 20 73 65 74 20 69 20 |ar..for |{ set i |
|000015c0| 30 20 7d 20 7b 20 24 69 | 20 3c 20 24 73 70 61 63 |0 } { $i| < $spac|
|000015d0| 65 4f 66 66 73 65 74 20 | 7d 20 7b 20 69 6e 63 72 |eOffset |} { incr|
|000015e0| 20 69 20 7d 20 7b 0d 09 | 09 73 65 74 20 66 72 6f | i } {..|.set fro|
|000015f0| 6e 74 53 74 75 66 66 20 | 24 66 72 6f 6e 74 53 74 |ntStuff |$frontSt|
|00001600| 75 66 66 24 61 53 70 61 | 63 65 20 20 0d 09 09 73 |uff$aSpa|ce ...s|
|00001610| 65 74 20 62 61 63 6b 53 | 74 75 66 66 20 24 61 53 |et backS|tuff $aS|
|00001620| 70 61 63 65 24 62 61 63 | 6b 53 74 75 66 66 0d 09 |pace$bac|kStuff..|
|00001630| 7d 0d 09 73 65 74 20 62 | 61 63 6b 53 74 75 66 66 |}..set b|ackStuff|
|00001640| 4c 65 6e 20 5b 73 74 72 | 69 6e 67 20 6c 65 6e 67 |Len [str|ing leng|
|00001650| 74 68 20 24 62 61 63 6b | 53 74 75 66 66 5d 0d 09 |th $back|Stuff]..|
|00001660| 0d 09 66 6f 72 20 7b 20 | 73 65 74 20 69 20 30 20 |..for { |set i 0 |
|00001670| 7d 20 7b 20 24 69 20 3c | 20 24 6e 75 6d 4c 69 6e |} { $i <| $numLin|
|00001680| 65 73 20 7d 20 7b 20 69 | 6e 63 72 20 69 20 7d 20 |es } { i|ncr i } |
|00001690| 7b 0d 09 09 73 65 74 20 | 74 68 69 73 4c 69 6e 65 |{...set |thisLine|
|000016a0| 20 5b 6c 69 6e 64 65 78 | 20 24 6c 69 6e 65 4c 69 | [lindex| $lineLi|
|000016b0| 73 74 20 24 69 20 5d 0d | 09 09 73 65 74 20 74 68 |st $i ].|..set th|
|000016c0| 69 73 4c 69 6e 65 20 24 | 66 72 6f 6e 74 53 74 75 |isLine $|frontStu|
|000016d0| 66 66 24 74 68 69 73 4c | 69 6e 65 0d 09 09 73 65 |ff$thisL|ine...se|
|000016e0| 74 20 74 68 69 73 4c 65 | 6e 67 74 68 20 5b 73 74 |t thisLe|ngth [st|
|000016f0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 74 68 69 |ring len|gth $thi|
|00001700| 73 4c 69 6e 65 5d 0d 09 | 09 73 65 74 20 68 6f 77 |sLine]..|.set how|
|00001710| 4d 75 63 68 50 61 64 20 | 5b 65 78 70 72 20 7b 24 |MuchPad |[expr {$|
|00001720| 6e 65 77 4c 65 6e 67 74 | 68 20 2d 20 24 74 68 69 |newLengt|h - $thi|
|00001730| 73 4c 65 6e 67 74 68 20 | 2d 20 24 62 61 63 6b 53 |sLength |- $backS|
|00001740| 74 75 66 66 4c 65 6e 7d | 5d 0d 09 09 66 6f 72 20 |tuffLen}|]...for |
|00001750| 7b 20 73 65 74 20 6a 20 | 30 20 7d 20 7b 20 24 6a |{ set j |0 } { $j|
|00001760| 20 3c 20 24 68 6f 77 4d | 75 63 68 50 61 64 20 7d | < $howM|uchPad }|
|00001770| 20 7b 20 69 6e 63 72 20 | 6a 20 7d 20 7b 0d 09 09 | { incr |j } {...|
|00001780| 09 73 65 74 20 74 68 69 | 73 4c 69 6e 65 20 24 74 |.set thi|sLine $t|
|00001790| 68 69 73 4c 69 6e 65 24 | 61 53 70 61 63 65 20 0d |hisLine$|aSpace .|
|000017a0| 09 09 7d 0d 09 09 73 65 | 74 20 74 68 69 73 4c 69 |..}...se|t thisLi|
|000017b0| 6e 65 20 24 74 68 69 73 | 4c 69 6e 65 24 62 61 63 |ne $this|Line$bac|
|000017c0| 6b 53 74 75 66 66 0d 09 | 09 73 65 74 20 74 65 78 |kStuff..|.set tex|
|000017d0| 74 20 24 74 65 78 74 24 | 74 68 69 73 4c 69 6e 65 |t $text$|thisLine|
|000017e0| 5c 72 0d 09 7d 0d 09 0d | 09 73 65 74 20 74 65 78 |\r..}...|.set tex|
|000017f0| 74 20 24 74 65 78 74 24 | 62 6c 61 6e 6b 4c 69 6e |t $text$|blankLin|
|00001800| 65 5c 72 24 62 6f 74 42 | 61 72 5c 72 0d 09 0d 23 |e\r$botB|ar\r...#|
|00001810| 20 4e 6f 77 20 72 65 70 | 6c 61 63 65 20 74 68 65 | Now rep|lace the|
|00001820| 20 6f 6c 64 20 73 74 75 | 66 66 2c 20 74 75 72 6e | old stu|ff, turn|
|00001830| 20 73 70 61 63 65 73 20 | 74 6f 20 74 61 62 73 2c | spaces |to tabs,|
|00001840| 20 61 6e 64 20 68 69 67 | 68 6c 69 67 68 74 0d 0d | and hig|hlight..|
|00001850| 09 72 65 70 6c 61 63 65 | 54 65 78 74 09 24 73 74 |.replace|Text.$st|
|00001860| 61 72 74 20 24 65 6e 64 | 09 24 74 65 78 74 0d 09 |art $end|.$text..|
|00001870| 73 65 74 20 65 6e 64 20 | 5b 65 78 70 72 20 7b 24 |set end |[expr {$|
|00001880| 73 74 61 72 74 2b 5b 73 | 74 72 69 6e 67 20 6c 65 |start+[s|tring le|
|00001890| 6e 67 74 68 20 24 74 65 | 78 74 5d 7d 5d 0d 09 63 |ngth $te|xt]}]..c|
|000018a0| 72 65 61 74 65 54 4d 61 | 72 6b 20 73 74 6f 70 43 |reateTMa|rk stopC|
|000018b0| 6f 6d 6d 65 6e 74 20 5b | 65 78 70 72 20 24 65 6e |omment [|expr $en|
|000018c0| 64 2b 31 5d 0d 09 73 65 | 6c 65 63 74 20 24 73 74 |d+1]..se|lect $st|
|000018d0| 61 72 74 20 24 65 6e 64 | 0d 09 73 70 61 63 65 73 |art $end|..spaces|
|000018e0| 54 6f 54 61 62 73 0d 09 | 67 6f 74 6f 54 4d 61 72 |ToTabs..|gotoTMar|
|000018f0| 6b 20 73 74 6f 70 43 6f | 6d 6d 65 6e 74 0d 09 73 |k stopCo|mment..s|
|00001900| 65 74 20 65 6e 64 20 5b | 65 78 70 72 20 5b 67 65 |et end [|expr [ge|
|00001910| 74 50 6f 73 5d 2d 31 5d | 0d 09 72 65 6d 6f 76 65 |tPos]-1]|..remove|
|00001920| 54 4d 61 72 6b 20 73 74 | 6f 70 43 6f 6d 6d 65 6e |TMark st|opCommen|
|00001930| 74 0d 09 73 65 6c 65 63 | 74 20 24 73 74 61 72 74 |t..selec|t $start|
|00001940| 20 24 65 6e 64 0d 7d 0d | 0d 0d 0d 70 72 6f 63 20 | $end.}.|...proc |
|00001950| 75 6e 63 6f 6d 6d 65 6e | 74 42 6f 78 20 7b 7d 20 |uncommen|tBox {} |
|00001960| 7b 0d 0d 23 20 50 72 65 | 6c 69 6d 69 6e 61 72 69 |{..# Pre|liminari|
|00001970| 65 73 0d 0d 09 69 66 20 | 7b 5b 67 65 74 50 6f 73 |es...if |{[getPos|
|00001980| 5d 20 3d 3d 20 5b 73 65 | 6c 45 6e 64 5d 7d 20 7b |] == [se|lEnd]} {|
|00001990| 0d 09 09 61 6c 65 72 74 | 6e 6f 74 65 20 22 4d 75 |...alert|note "Mu|
|000019a0| 73 74 20 73 65 6c 65 63 | 74 20 72 65 67 69 6f 6e |st selec|t region|
|000019b0| 20 74 6f 20 62 65 20 75 | 6e 63 6f 6d 6d 65 6e 74 | to be u|ncomment|
|000019c0| 65 64 2e 22 0d 09 09 72 | 65 74 75 72 6e 0d 09 7d |ed."...r|eturn..}|
|000019d0| 0d 09 67 6c 6f 62 61 6c | 20 6c 61 73 74 4d 6f 64 |..global| lastMod|
|000019e0| 65 0d 09 77 61 74 63 68 | 43 75 72 73 6f 72 0d 09 |e..watch|Cursor..|
|000019f0| 0d 23 20 53 65 74 20 77 | 68 61 74 20 74 68 65 20 |.# Set w|hat the |
|00001a00| 63 6f 6d 6d 65 6e 74 20 | 62 6c 6f 63 6b 20 77 69 |comment |block wi|
|00001a10| 6c 6c 20 6c 6f 6f 6b 20 | 6c 69 6b 65 0d 0d 09 63 |ll look |like...c|
|00001a20| 61 73 65 20 24 6c 61 73 | 74 4d 6f 64 65 20 69 6e |ase $las|tMode in|
|00001a30| 20 7b 0d 09 09 22 54 65 | 78 74 22 20 7b 0d 09 09 | {..."Te|xt" {...|
|00001a40| 09 73 65 74 20 62 65 67 | 43 6f 6d 6d 65 6e 74 20 |.set beg|Comment |
|00001a50| 22 21 22 0d 09 09 09 73 | 65 74 20 62 65 67 43 6f |"!"....s|et begCo|
|00001a60| 6d 4c 65 6e 20 31 0d 09 | 09 09 73 65 74 20 65 6e |mLen 1..|..set en|
|00001a70| 64 43 6f 6d 6d 65 6e 74 | 20 22 21 22 0d 09 09 09 |dComment| "!"....|
|00001a80| 73 65 74 20 65 6e 64 43 | 6f 6d 4c 65 6e 20 31 0d |set endC|omLen 1.|
|00001a90| 09 09 09 73 65 74 20 66 | 69 6c 6c 43 68 61 72 20 |...set f|illChar |
|00001aa0| 22 21 22 0d 09 09 09 73 | 65 74 20 73 70 61 63 65 |"!"....s|et space|
|00001ab0| 4f 66 66 73 65 74 20 33 | 0d 09 09 7d 0d 09 09 22 |Offset 3|...}..."|
|00001ac0| 46 6f 72 74 22 20 7b 0d | 09 09 09 73 65 74 20 62 |Fort" {.|...set b|
|00001ad0| 65 67 43 6f 6d 6d 65 6e | 74 20 22 43 22 0d 09 09 |egCommen|t "C"...|
|00001ae0| 09 73 65 74 20 62 65 67 | 43 6f 6d 4c 65 6e 20 31 |.set beg|ComLen 1|
|00001af0| 0d 09 09 09 73 65 74 20 | 65 6e 64 43 6f 6d 6d 65 |....set |endComme|
|00001b00| 6e 74 20 22 43 22 0d 09 | 09 09 73 65 74 20 65 6e |nt "C"..|..set en|
|00001b10| 64 43 6f 6d 4c 65 6e 20 | 31 0d 09 09 09 73 65 74 |dComLen |1....set|
|00001b20| 20 66 69 6c 6c 43 68 61 | 72 20 22 43 22 0d 09 09 | fillCha|r "C"...|
|00001b30| 09 73 65 74 20 73 70 61 | 63 65 4f 66 66 73 65 74 |.set spa|ceOffset|
|00001b40| 20 33 0d 09 09 7d 0d 09 | 09 22 54 63 6c 22 20 7b | 3...}..|."Tcl" {|
|00001b50| 0d 09 09 09 73 65 74 20 | 62 65 67 43 6f 6d 6d 65 |....set |begComme|
|00001b60| 6e 74 20 22 23 22 0d 09 | 09 09 73 65 74 20 62 65 |nt "#"..|..set be|
|00001b70| 67 43 6f 6d 4c 65 6e 20 | 31 0d 09 09 09 73 65 74 |gComLen |1....set|
|00001b80| 20 65 6e 64 43 6f 6d 6d | 65 6e 74 20 22 23 22 0d | endComm|ent "#".|
|00001b90| 09 09 09 73 65 74 20 65 | 6e 64 43 6f 6d 4c 65 6e |...set e|ndComLen|
|00001ba0| 20 31 0d 09 09 09 73 65 | 74 20 66 69 6c 6c 43 68 | 1....se|t fillCh|
|00001bb0| 61 72 20 22 23 22 0d 09 | 09 09 73 65 74 20 73 70 |ar "#"..|..set sp|
|00001bc0| 61 63 65 4f 66 66 73 65 | 74 20 33 0d 09 09 7d 0d |aceOffse|t 3...}.|
|00001bd0| 09 09 22 43 22 20 7b 0d | 09 09 09 73 65 74 20 62 |.."C" {.|...set b|
|00001be0| 65 67 43 6f 6d 6d 65 6e | 74 20 22 2f 2a 22 0d 09 |egCommen|t "/*"..|
|00001bf0| 09 09 73 65 74 20 62 65 | 67 43 6f 6d 4c 65 6e 20 |..set be|gComLen |
|00001c00| 32 0d 09 09 09 73 65 74 | 20 65 6e 64 43 6f 6d 6d |2....set| endComm|
|00001c10| 65 6e 74 20 22 2a 2f 22 | 0d 09 09 09 73 65 74 20 |ent "*/"|....set |
|00001c20| 65 6e 64 43 6f 6d 4c 65 | 6e 20 32 0d 09 09 09 73 |endComLe|n 2....s|
|00001c30| 65 74 20 66 69 6c 6c 43 | 68 61 72 20 22 2a 22 0d |et fillC|har "*".|
|00001c40| 09 09 09 73 65 74 20 73 | 70 61 63 65 4f 66 66 73 |...set s|paceOffs|
|00001c50| 65 74 20 33 0d 09 09 7d | 0d 09 09 22 43 2b 2b 22 |et 3...}|..."C++"|
|00001c60| 20 7b 0d 09 09 09 73 65 | 74 20 62 65 67 43 6f 6d | {....se|t begCom|
|00001c70| 6d 65 6e 74 20 22 2f 2a | 22 0d 09 09 09 73 65 74 |ment "/*|"....set|
|00001c80| 20 62 65 67 43 6f 6d 4c | 65 6e 20 32 0d 09 09 09 | begComL|en 2....|
|00001c90| 73 65 74 20 65 6e 64 43 | 6f 6d 6d 65 6e 74 20 22 |set endC|omment "|
|00001ca0| 2a 2f 22 0d 09 09 09 73 | 65 74 20 65 6e 64 43 6f |*/"....s|et endCo|
|00001cb0| 6d 4c 65 6e 20 32 0d 09 | 09 09 73 65 74 20 66 69 |mLen 2..|..set fi|
|00001cc0| 6c 6c 43 68 61 72 20 22 | 2a 22 0d 09 09 09 73 65 |llChar "|*"....se|
|00001cd0| 74 20 73 70 61 63 65 4f | 66 66 73 65 74 20 33 0d |t spaceO|ffset 3.|
|00001ce0| 09 09 7d 0d 09 09 64 65 | 66 61 75 6c 74 20 7b 0d |..}...de|fault {.|
|00001cf0| 09 09 09 61 6c 65 72 74 | 6e 6f 74 65 20 22 49 20 |...alert|note "I |
|00001d00| 64 6f 6e 27 74 20 6b 6e | 6f 77 20 77 68 61 74 20 |don't kn|ow what |
|00001d10| 63 6f 6d 6d 65 6e 74 73 | 20 73 68 6f 75 6c 64 20 |comments| should |
|00001d20| 6c 6f 6f 6b 20 6c 69 6b | 65 20 69 6e 20 74 68 69 |look lik|e in thi|
|00001d30| 73 20 6d 6f 64 65 2e 20 | 20 53 6f 72 72 79 2e 22 |s mode. | Sorry."|
|00001d40| 0d 09 09 09 72 65 74 75 | 72 6e 0d 09 09 7d 0d 09 |....retu|rn...}..|
|00001d50| 7d 0d 09 73 65 74 20 61 | 53 70 61 63 65 20 22 20 |}..set a|Space " |
|00001d60| 22 0d 09 73 65 74 20 61 | 54 61 62 20 5c 74 0d 0d |"..set a|Tab \t..|
|00001d70| 23 20 46 69 72 73 74 20 | 6d 61 6b 65 20 73 75 72 |# First |make sur|
|00001d80| 65 20 77 65 20 67 72 61 | 62 20 61 20 66 75 6c 6c |e we gra|b a full|
|00001d90| 20 62 6c 6f 63 6b 20 6f | 66 20 6c 69 6e 65 73 0d | block o|f lines.|
|00001da0| 0d 09 73 65 74 20 73 74 | 61 72 74 20 5b 67 65 74 |..set st|art [get|
|00001db0| 50 6f 73 5d 0d 09 73 65 | 74 20 73 74 61 72 74 20 |Pos]..se|t start |
|00001dc0| 5b 6c 69 6e 65 53 74 61 | 72 74 20 24 73 74 61 72 |[lineSta|rt $star|
|00001dd0| 74 5d 0d 09 73 65 74 20 | 65 6e 64 20 5b 73 65 6c |t]..set |end [sel|
|00001de0| 45 6e 64 5d 0d 09 73 65 | 74 20 65 6e 64 20 5b 6e |End]..se|t end [n|
|00001df0| 65 78 74 4c 69 6e 65 53 | 74 61 72 74 20 5b 65 78 |extLineS|tart [ex|
|00001e00| 70 72 20 24 65 6e 64 2d | 31 5d 5d 0d 09 73 65 74 |pr $end-|1]]..set|
|00001e10| 20 74 65 78 74 20 5b 67 | 65 74 54 65 78 74 20 24 | text [g|etText $|
|00001e20| 73 74 61 72 74 20 24 65 | 6e 64 5d 0d 0d 23 20 4d |start $e|nd]..# M|
|00001e30| 61 6b 65 20 73 75 72 65 | 20 77 65 27 72 65 20 61 |ake sure| we're a|
|00001e40| 74 20 74 68 65 20 73 74 | 61 72 74 20 61 6e 64 20 |t the st|art and |
|00001e50| 65 6e 64 20 6f 66 20 74 | 68 65 20 62 6f 78 0d 0d |end of t|he box..|
|00001e60| 09 73 65 74 20 73 74 61 | 72 74 4f 4b 20 5b 73 74 |.set sta|rtOK [st|
|00001e70| 72 69 6e 67 20 66 69 72 | 73 74 20 24 62 65 67 43 |ring fir|st $begC|
|00001e80| 6f 6d 6d 65 6e 74 20 24 | 74 65 78 74 5d 0d 09 73 |omment $|text]..s|
|00001e90| 65 74 20 65 6e 64 4f 4b | 20 5b 73 74 72 69 6e 67 |et endOK| [string|
|00001ea0| 20 6c 61 73 74 20 24 65 | 6e 64 43 6f 6d 6d 65 6e | last $e|ndCommen|
|00001eb0| 74 20 24 74 65 78 74 5d | 0d 09 73 65 74 20 74 65 |t $text]|..set te|
|00001ec0| 78 74 4c 65 6e 67 74 68 | 20 5b 73 74 72 69 6e 67 |xtLength| [string|
|00001ed0| 20 6c 65 6e 67 74 68 20 | 24 74 65 78 74 5d 0d 09 | length |$text]..|
|00001ee0| 69 66 20 7b 20 24 73 74 | 61 72 74 4f 4b 20 21 3d |if { $st|artOK !=|
|00001ef0| 20 30 20 7c 7c 20 28 24 | 65 6e 64 4f 4b 20 21 3d | 0 || ($|endOK !=|
|00001f00| 20 5b 65 78 70 72 20 7b | 24 74 65 78 74 4c 65 6e | [expr {|$textLen|
|00001f10| 67 74 68 2d 24 65 6e 64 | 43 6f 6d 4c 65 6e 2d 31 |gth-$end|ComLen-1|
|00001f20| 7d 5d 20 7c 7c 20 24 65 | 6e 64 4f 4b 20 3d 3d 20 |}] || $e|ndOK == |
|00001f30| 2d 31 29 20 7d 20 74 68 | 65 6e 20 7b 0d 09 09 61 |-1) } th|en {...a|
|00001f40| 6c 65 72 74 6e 6f 74 65 | 20 22 59 6f 75 20 6d 75 |lertnote| "You mu|
|00001f50| 73 74 20 68 69 67 68 6c | 69 67 68 74 20 74 68 65 |st highl|ight the|
|00001f60| 20 65 6e 74 69 72 65 20 | 63 6f 6d 6d 65 6e 74 20 | entire |comment |
|00001f70| 62 6f 78 2c 20 69 6e 63 | 6c 75 64 69 6e 67 20 74 |box, inc|luding t|
|00001f80| 68 65 20 62 6f 72 64 65 | 72 73 2e 22 0d 09 09 72 |he borde|rs."...r|
|00001f90| 65 74 75 72 6e 0d 09 7d | 0d 09 0d 23 20 4e 6f 77 |eturn..}|...# Now|
|00001fa0| 20 67 65 74 20 72 69 64 | 20 6f 66 20 61 6e 79 20 | get rid| of any |
|00001fb0| 74 61 62 73 0d 09 0d 09 | 69 66 20 7b 20 24 65 6e |tabs....|if { $en|
|00001fc0| 64 20 3c 20 5b 6d 61 78 | 50 6f 73 5d 20 7d 20 74 |d < [max|Pos] } t|
|00001fd0| 68 65 6e 20 7b 0d 09 09 | 63 72 65 61 74 65 54 4d |hen {...|createTM|
|00001fe0| 61 72 6b 20 73 74 6f 70 | 43 6f 6d 6d 65 6e 74 20 |ark stop|Comment |
|00001ff0| 5b 65 78 70 72 20 24 65 | 6e 64 2b 31 5d 0d 09 09 |[expr $e|nd+1]...|
|00002000| 74 61 62 73 54 6f 53 70 | 61 63 65 73 0d 09 09 67 |tabsToSp|aces...g|
|00002010| 6f 74 6f 54 4d 61 72 6b | 20 73 74 6f 70 43 6f 6d |otoTMark| stopCom|
|00002020| 6d 65 6e 74 0d 09 09 73 | 65 74 20 65 6e 64 20 5b |ment...s|et end [|
|00002030| 65 78 70 72 20 5b 67 65 | 74 50 6f 73 5d 2d 31 5d |expr [ge|tPos]-1]|
|00002040| 0d 09 09 72 65 6d 6f 76 | 65 54 4d 61 72 6b 20 73 |...remov|eTMark s|
|00002050| 74 6f 70 43 6f 6d 6d 65 | 6e 74 0d 09 7d 20 65 6c |topComme|nt..} el|
|00002060| 73 65 20 7b 0d 09 09 74 | 61 62 73 54 6f 53 70 61 |se {...t|absToSpa|
|00002070| 63 65 73 0d 09 09 73 65 | 74 20 65 6e 64 20 5b 6d |ces...se|t end [m|
|00002080| 61 78 50 6f 73 5d 0d 09 | 7d 0d 09 73 65 6c 65 63 |axPos]..|}..selec|
|00002090| 74 20 24 73 74 61 72 74 | 20 24 65 6e 64 0d 09 73 |t $start| $end..s|
|000020a0| 65 74 20 74 65 78 74 20 | 5b 67 65 74 54 65 78 74 |et text |[getText|
|000020b0| 20 24 73 74 61 72 74 20 | 24 65 6e 64 5d 0d 09 0d | $start |$end]...|
|000020c0| 23 20 4e 65 78 74 20 74 | 75 72 6e 20 69 74 20 69 |# Next t|urn it i|
|000020d0| 6e 74 6f 20 61 20 6c 69 | 73 74 20 6f 66 20 6c 69 |nto a li|st of li|
|000020e0| 6e 65 73 2d 2d 70 6f 73 | 73 69 62 6c 79 20 64 72 |nes--pos|sibly dr|
|000020f0| 6f 70 20 61 6e 20 65 6d | 70 74 79 20 27 6c 61 73 |op an em|pty 'las|
|00002100| 74 20 6c 69 6e 65 27 0d | 0d 09 73 65 74 20 6c 69 |t line'.|..set li|
|00002110| 6e 65 4c 69 73 74 20 5b | 73 70 6c 69 74 20 24 74 |neList [|split $t|
|00002120| 65 78 74 20 22 5c 72 22 | 5d 0d 09 73 65 74 20 65 |ext "\r"|]..set e|
|00002130| 6d 70 74 79 4c 69 6e 65 | 20 5b 6c 73 65 61 72 63 |mptyLine| [lsearc|
|00002140| 68 20 24 6c 69 6e 65 4c | 69 73 74 20 7b 7d 5d 0d |h $lineL|ist {}].|
|00002150| 09 69 66 20 7b 20 24 65 | 6d 70 74 79 4c 69 6e 65 |.if { $e|mptyLine|
|00002160| 20 21 3d 20 2d 31 20 7d | 20 74 68 65 6e 20 7b 0d | != -1 }| then {.|
|00002170| 09 09 73 65 74 20 6e 75 | 6d 4c 69 6e 65 73 20 5b |..set nu|mLines [|
|00002180| 6c 6c 65 6e 67 74 68 20 | 24 6c 69 6e 65 4c 69 73 |llength |$lineLis|
|00002190| 74 5d 0d 09 09 73 65 74 | 20 6c 69 6e 65 4c 69 73 |t]...set| lineLis|
|000021a0| 74 20 5b 6c 72 61 6e 67 | 65 20 24 6c 69 6e 65 4c |t [lrang|e $lineL|
|000021b0| 69 73 74 20 30 20 5b 65 | 78 70 72 20 24 6e 75 6d |ist 0 [e|xpr $num|
|000021c0| 4c 69 6e 65 73 2d 32 5d | 5d 0d 09 7d 0d 09 73 65 |Lines-2]|]..}..se|
|000021d0| 74 20 6e 75 6d 4c 69 6e | 65 73 20 5b 6c 6c 65 6e |t numLin|es [llen|
|000021e0| 67 74 68 20 24 6c 69 6e | 65 4c 69 73 74 5d 0d 09 |gth $lin|eList]..|
|000021f0| 0d 23 20 44 65 6c 65 74 | 65 20 74 68 65 20 66 69 |.# Delet|e the fi|
|00002200| 72 73 74 20 61 6e 64 20 | 6c 61 73 74 20 6c 69 6e |rst and |last lin|
|00002210| 65 73 2c 20 72 65 63 6f | 6d 70 75 74 65 20 6e 75 |es, reco|mpute nu|
|00002220| 6d 62 65 72 20 6f 66 20 | 6c 69 6e 65 73 0d 0d 09 |mber of |lines...|
|00002230| 73 65 74 20 6c 69 6e 65 | 4c 69 73 74 20 5b 6c 72 |set line|List [lr|
|00002240| 65 70 6c 61 63 65 20 24 | 6c 69 6e 65 4c 69 73 74 |eplace $|lineList|
|00002250| 20 5b 65 78 70 72 20 24 | 6e 75 6d 4c 69 6e 65 73 | [expr $|numLines|
|00002260| 2d 31 5d 20 5b 65 78 70 | 72 20 24 6e 75 6d 4c 69 |-1] [exp|r $numLi|
|00002270| 6e 65 73 2d 31 5d 20 5d | 0d 09 73 65 74 20 6c 69 |nes-1] ]|..set li|
|00002280| 6e 65 4c 69 73 74 20 5b | 6c 72 65 70 6c 61 63 65 |neList [|lreplace|
|00002290| 20 24 6c 69 6e 65 4c 69 | 73 74 20 30 20 30 20 5d | $lineLi|st 0 0 ]|
|000022a0| 0d 09 73 65 74 20 6e 75 | 6d 4c 69 6e 65 73 20 5b |..set nu|mLines [|
|000022b0| 6c 6c 65 6e 67 74 68 20 | 24 6c 69 6e 65 4c 69 73 |llength |$lineLis|
|000022c0| 74 5d 0d 09 0d 23 20 45 | 6c 69 6d 69 6e 61 74 65 |t]...# E|liminate|
|000022d0| 20 32 6e 64 20 61 6e 64 | 20 32 6e 64 2d 74 6f 2d | 2nd and| 2nd-to-|
|000022e0| 6c 61 73 74 20 6c 69 6e | 65 73 20 69 66 20 74 68 |last lin|es if th|
|000022f0| 65 79 20 61 72 65 20 65 | 6d 70 74 79 0d 0d 09 73 |ey are e|mpty...s|
|00002300| 65 74 20 65 6c 69 6d 69 | 6e 61 74 65 20 24 66 69 |et elimi|nate $fi|
|00002310| 6c 6c 43 68 61 72 24 61 | 53 70 61 63 65 24 61 54 |llChar$a|Space$aT|
|00002320| 61 62 0d 09 73 65 74 20 | 74 68 69 73 4c 69 6e 65 |ab..set |thisLine|
|00002330| 20 5b 6c 69 6e 64 65 78 | 20 24 6c 69 6e 65 4c 69 | [lindex| $lineLi|
|00002340| 73 74 20 5b 65 78 70 72 | 20 24 6e 75 6d 4c 69 6e |st [expr| $numLin|
|00002350| 65 73 2d 31 5d 5d 0d 09 | 73 65 74 20 74 68 69 73 |es-1]]..|set this|
|00002360| 4c 69 6e 65 20 5b 73 74 | 72 69 6e 67 20 74 72 69 |Line [st|ring tri|
|00002370| 6d 20 24 74 68 69 73 4c | 69 6e 65 20 24 65 6c 69 |m $thisL|ine $eli|
|00002380| 6d 69 6e 61 74 65 5d 0d | 09 69 66 20 7b 20 5b 73 |minate].|.if { [s|
|00002390| 74 72 69 6e 67 20 6c 65 | 6e 67 74 68 20 24 74 68 |tring le|ngth $th|
|000023a0| 69 73 4c 69 6e 65 5d 20 | 3d 3d 20 30 20 7d 20 74 |isLine] |== 0 } t|
|000023b0| 68 65 6e 20 7b 0d 09 09 | 73 65 74 20 6c 69 6e 65 |hen {...|set line|
|000023c0| 4c 69 73 74 20 5b 6c 72 | 65 70 6c 61 63 65 20 24 |List [lr|eplace $|
|000023d0| 6c 69 6e 65 4c 69 73 74 | 20 5b 65 78 70 72 20 24 |lineList| [expr $|
|000023e0| 6e 75 6d 4c 69 6e 65 73 | 2d 31 5d 20 5b 65 78 70 |numLines|-1] [exp|
|000023f0| 72 20 24 6e 75 6d 4c 69 | 6e 65 73 2d 31 5d 20 5d |r $numLi|nes-1] ]|
|00002400| 0d 09 7d 0d 09 73 65 74 | 20 74 68 69 73 4c 69 6e |..}..set| thisLin|
|00002410| 65 20 5b 6c 69 6e 64 65 | 78 20 24 6c 69 6e 65 4c |e [linde|x $lineL|
|00002420| 69 73 74 20 30 5d 0d 09 | 73 65 74 20 74 68 69 73 |ist 0]..|set this|
|00002430| 4c 69 6e 65 20 5b 73 74 | 72 69 6e 67 20 74 72 69 |Line [st|ring tri|
|00002440| 6d 20 24 74 68 69 73 4c | 69 6e 65 20 24 65 6c 69 |m $thisL|ine $eli|
|00002450| 6d 69 6e 61 74 65 5d 0d | 09 69 66 20 7b 20 5b 73 |minate].|.if { [s|
|00002460| 74 72 69 6e 67 20 6c 65 | 6e 67 74 68 20 24 74 68 |tring le|ngth $th|
|00002470| 69 73 4c 69 6e 65 5d 20 | 3d 3d 20 30 20 7d 20 74 |isLine] |== 0 } t|
|00002480| 68 65 6e 20 7b 0d 09 09 | 73 65 74 20 6c 69 6e 65 |hen {...|set line|
|00002490| 4c 69 73 74 20 5b 6c 72 | 65 70 6c 61 63 65 20 24 |List [lr|eplace $|
|000024a0| 6c 69 6e 65 4c 69 73 74 | 20 30 20 30 20 5d 0d 09 |lineList| 0 0 ]..|
|000024b0| 7d 0d 09 73 65 74 20 6e | 75 6d 4c 69 6e 65 73 20 |}..set n|umLines |
|000024c0| 5b 6c 6c 65 6e 67 74 68 | 20 24 6c 69 6e 65 4c 69 |[llength| $lineLi|
|000024d0| 73 74 5d 09 0d 09 0d 23 | 20 46 6f 72 20 65 61 63 |st]....#| For eac|
|000024e0| 68 20 6c 69 6e 65 20 74 | 72 69 6d 20 73 74 75 66 |h line t|rim stuf|
|000024f0| 66 20 6f 6e 20 6c 65 66 | 74 20 61 6e 64 20 73 70 |f on lef|t and sp|
|00002500| 61 63 65 73 20 61 6e 64 | 20 73 74 75 66 66 20 6f |aces and| stuff o|
|00002510| 6e 20 72 69 67 68 74 20 | 61 6e 64 20 73 70 6c 69 |n right |and spli|
|00002520| 63 65 0d 0d 09 73 65 74 | 20 64 72 6f 70 46 72 6f |ce...set| dropFro|
|00002530| 6d 4c 65 66 74 20 5b 65 | 78 70 72 20 24 73 70 61 |mLeft [e|xpr $spa|
|00002540| 63 65 4f 66 66 73 65 74 | 2b 31 5d 0d 09 73 65 74 |ceOffset|+1]..set|
|00002550| 20 74 65 78 74 20 22 22 | 0d 09 66 6f 72 20 7b 20 | text ""|..for { |
|00002560| 73 65 74 20 69 20 30 20 | 7d 20 7b 20 24 69 20 3c |set i 0 |} { $i <|
|00002570| 20 24 6e 75 6d 4c 69 6e | 65 73 20 7d 20 7b 20 69 | $numLin|es } { i|
|00002580| 6e 63 72 20 69 20 7d 20 | 7b 0d 09 09 73 65 74 20 |ncr i } |{...set |
|00002590| 74 68 69 73 4c 69 6e 65 | 20 5b 6c 69 6e 64 65 78 |thisLine| [lindex|
|000025a0| 20 24 6c 69 6e 65 4c 69 | 73 74 20 24 69 5d 0d 09 | $lineLi|st $i]..|
|000025b0| 09 73 65 74 20 74 68 69 | 73 4c 69 6e 65 20 5b 73 |.set thi|sLine [s|
|000025c0| 74 72 69 6e 67 20 74 72 | 69 6d 72 69 67 68 74 20 |tring tr|imright |
|000025d0| 24 74 68 69 73 4c 69 6e | 65 20 24 65 6c 69 6d 69 |$thisLin|e $elimi|
|000025e0| 6e 61 74 65 5d 0d 09 09 | 73 65 74 20 74 68 69 73 |nate]...|set this|
|000025f0| 4c 69 6e 65 20 5b 73 74 | 72 69 6e 67 20 72 61 6e |Line [st|ring ran|
|00002600| 67 65 20 24 74 68 69 73 | 4c 69 6e 65 20 24 64 72 |ge $this|Line $dr|
|00002610| 6f 70 46 72 6f 6d 4c 65 | 66 74 20 65 6e 64 5d 0d |opFromLe|ft end].|
|00002620| 09 09 73 65 74 20 74 65 | 78 74 20 24 74 65 78 74 |..set te|xt $text|
|00002630| 24 74 68 69 73 4c 69 6e | 65 5c 72 0d 09 7d 0d 09 |$thisLin|e\r..}..|
|00002640| 09 0d 23 20 4e 6f 77 20 | 72 65 70 6c 61 63 65 20 |..# Now |replace |
|00002650| 74 68 65 20 6f 6c 64 20 | 73 74 75 66 66 2c 20 63 |the old |stuff, c|
|00002660| 6f 6e 76 65 72 74 20 73 | 70 61 63 65 73 20 62 61 |onvert s|paces ba|
|00002670| 63 6b 20 74 6f 20 74 61 | 62 73 0d 0d 09 72 65 70 |ck to ta|bs...rep|
|00002680| 6c 61 63 65 54 65 78 74 | 09 24 73 74 61 72 74 20 |laceText|.$start |
|00002690| 24 65 6e 64 09 24 74 65 | 78 74 0d 09 73 65 74 20 |$end.$te|xt..set |
|000026a0| 65 6e 64 20 5b 65 78 70 | 72 20 7b 24 73 74 61 72 |end [exp|r {$star|
|000026b0| 74 2b 5b 73 74 72 69 6e | 67 09 6c 65 6e 67 74 68 |t+[strin|g.length|
|000026c0| 20 24 74 65 78 74 5d 7d | 5d 0d 09 63 72 65 61 74 | $text]}|]..creat|
|000026d0| 65 54 4d 61 72 6b 20 73 | 74 6f 70 43 6f 6d 6d 65 |eTMark s|topComme|
|000026e0| 6e 74 20 5b 65 78 70 72 | 20 24 65 6e 64 2b 31 5d |nt [expr| $end+1]|
|000026f0| 0d 09 73 65 6c 65 63 74 | 20 24 73 74 61 72 74 20 |..select| $start |
|00002700| 24 65 6e 64 0d 09 73 70 | 61 63 65 73 54 6f 54 61 |$end..sp|acesToTa|
|00002710| 62 73 0d 09 67 6f 74 6f | 54 4d 61 72 6b 20 73 74 |bs..goto|TMark st|
|00002720| 6f 70 43 6f 6d 6d 65 6e | 74 0d 09 73 65 74 20 65 |opCommen|t..set e|
|00002730| 6e 64 20 5b 65 78 70 72 | 20 5b 67 65 74 50 6f 73 |nd [expr| [getPos|
|00002740| 5d 2d 31 5d 0d 09 72 65 | 6d 6f 76 65 54 4d 61 72 |]-1]..re|moveTMar|
|00002750| 6b 20 73 74 6f 70 43 6f | 6d 6d 65 6e 74 0d 09 73 |k stopCo|mment..s|
|00002760| 65 6c 65 63 74 20 24 73 | 74 61 72 74 20 24 65 6e |elect $s|tart $en|
|00002770| 64 0d 7d 0d 0d 0d 23 3d | 3d 3d 3d 3d 3d 3d 3d 3d |d.}...#=|========|
|00002780| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002790| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000027a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000027b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000027c0| 3d 3d 3d 3d 3d 3d 3d 0d | 0d 70 72 6f 63 20 74 72 |=======.|.proc tr|
|000027d0| 61 6e 73 70 6f 73 65 57 | 6f 72 64 73 20 7b 7d 20 |ansposeW|ords {} |
|000027e0| 7b 0d 09 67 6c 6f 62 61 | 6c 20 69 6e 74 65 6c 43 |{..globa|l intelC|
|000027f0| 75 74 50 61 73 74 65 0d | 09 0d 09 73 65 74 20 69 |utPaste.|...set i|
|00002800| 6e 74 65 6c 20 24 69 6e | 74 65 6c 43 75 74 50 61 |ntel $in|telCutPa|
|00002810| 73 74 65 0d 09 73 65 74 | 20 69 6e 74 65 6c 43 75 |ste..set| intelCu|
|00002820| 74 50 61 73 74 65 20 30 | 0d 20 20 20 20 66 6f 72 |tPaste 0|. for|
|00002830| 77 61 72 64 57 6f 72 64 | 0d 20 20 20 20 73 65 74 |wardWord|. set|
|00002840| 4d 61 72 6b 0d 20 20 20 | 20 62 61 63 6b 77 61 72 |Mark. | backwar|
|00002850| 64 57 6f 72 64 0d 20 20 | 20 20 63 75 74 0d 20 20 |dWord. | cut. |
|00002860| 20 20 64 65 6c 65 74 65 | 43 68 61 72 0d 20 20 20 | delete|Char. |
|00002870| 20 66 6f 72 77 61 72 64 | 57 6f 72 64 0d 20 20 20 | forward|Word. |
|00002880| 20 69 6e 73 65 72 74 54 | 65 78 74 20 22 5c 20 22 | insertT|ext "\ "|
|00002890| 0d 20 20 20 20 70 61 73 | 74 65 0d 09 73 65 74 20 |. pas|te..set |
|000028a0| 69 6e 74 65 6c 43 75 74 | 50 61 73 74 65 20 24 69 |intelCut|Paste $i|
|000028b0| 6e 74 65 6c 0d 7d 0d 0d | 70 72 6f 63 20 74 72 61 |ntel.}..|proc tra|
|000028c0| 6e 73 70 6f 73 65 43 68 | 61 72 73 20 7b 7d 20 7b |nsposeCh|ars {} {|
|000028d0| 0d 20 09 67 6c 6f 62 61 | 6c 20 69 6e 74 65 6c 43 |. .globa|l intelC|
|000028e0| 75 74 50 61 73 74 65 0d | 09 0d 09 73 65 74 20 69 |utPaste.|...set i|
|000028f0| 6e 74 65 6c 20 24 69 6e | 74 65 6c 43 75 74 50 61 |ntel $in|telCutPa|
|00002900| 73 74 65 0d 09 73 65 74 | 20 69 6e 74 65 6c 43 75 |ste..set| intelCu|
|00002910| 74 50 61 73 74 65 20 30 | 0d 20 20 20 20 73 65 74 |tPaste 0|. set|
|00002920| 4d 61 72 6b 0d 20 20 20 | 20 66 6f 72 77 61 72 64 |Mark. | forward|
|00002930| 43 68 61 72 0d 20 20 20 | 20 63 75 74 0d 20 20 20 |Char. | cut. |
|00002940| 20 62 61 63 6b 77 61 72 | 64 43 68 61 72 0d 20 20 | backwar|dChar. |
|00002950| 20 20 70 61 73 74 65 0d | 20 20 20 20 66 6f 72 77 | paste.| forw|
|00002960| 61 72 64 43 68 61 72 0d | 09 73 65 74 20 69 6e 74 |ardChar.|.set int|
|00002970| 65 6c 43 75 74 50 61 73 | 74 65 20 24 69 6e 74 65 |elCutPas|te $inte|
|00002980| 6c 0d 7d 0d 0d 70 72 6f | 63 20 6e 65 78 74 46 75 |l.}..pro|c nextFu|
|00002990| 6e 63 20 7b 7d 20 7b 0d | 09 73 65 61 72 63 68 46 |nc {} {.|.searchF|
|000029a0| 75 6e 63 20 31 0d 7d 0d | 0d 70 72 6f 63 20 70 72 |unc 1.}.|.proc pr|
|000029b0| 65 76 46 75 6e 63 20 7b | 7d 20 7b 0d 09 73 65 61 |evFunc {|} {..sea|
|000029c0| 72 63 68 46 75 6e 63 20 | 30 0d 7d 0d 0d 70 72 6f |rchFunc |0.}..pro|
|000029d0| 63 20 73 65 61 72 63 68 | 46 75 6e 63 20 7b 64 69 |c search|Func {di|
|000029e0| 72 7d 20 7b 0d 09 67 6c | 6f 62 61 6c 20 66 75 6e |r} {..gl|obal fun|
|000029f0| 63 45 78 70 72 0d 09 73 | 65 74 20 70 6f 73 20 5b |cExpr..s|et pos [|
|00002a00| 67 65 74 50 6f 73 5d 0d | 09 73 65 6c 65 63 74 20 |getPos].|.select |
|00002a10| 24 70 6f 73 0d 09 69 66 | 20 28 24 64 69 72 3d 3d |$pos..if| ($dir==|
|00002a20| 31 29 20 7b 0d 09 09 69 | 6e 63 72 20 70 6f 73 0d |1) {...i|ncr pos.|
|00002a30| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 73 65 74 20 |.} else |{...set |
|00002a40| 70 6f 73 20 5b 65 78 70 | 72 20 24 70 6f 73 2d 31 |pos [exp|r $pos-1|
|00002a50| 5d 0d 09 7d 0d 09 69 66 | 20 7b 21 5b 63 61 74 63 |]..}..if| {![catc|
|00002a60| 68 20 7b 73 65 61 72 63 | 68 20 2d 66 20 24 64 69 |h {searc|h -f $di|
|00002a70| 72 20 2d 69 20 31 20 2d | 72 20 31 20 24 66 75 6e |r -i 1 -|r 1 $fun|
|00002a80| 63 45 78 70 72 20 24 70 | 6f 73 7d 20 72 65 73 5d |cExpr $p|os} res]|
|00002a90| 7d 20 7b 0d 09 09 65 76 | 61 6c 20 73 65 6c 65 63 |} {...ev|al selec|
|00002aa0| 74 20 24 72 65 73 0d 09 | 7d 0d 7d 0d 0d 23 3d 3d |t $res..|}.}..#==|
|00002ab0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ac0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ad0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ae0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002af0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 23 20 43 6f 6d 6d |========|=.# Comm|
|00002b00| 65 6e 74 20 72 6f 75 74 | 69 6e 65 73 2e 0d 23 3d |ent rout|ines..#=|
|00002b10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002b20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002b30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002b40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002b50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 70 72 6f 63 20 |========|==.proc |
|00002b60| 63 6f 6d 6d 65 6e 74 50 | 61 72 61 20 7b 7d 20 7b |commentP|ara {} {|
|00002b70| 0d 7d 0d 0d 0d 0d 23 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.}....#=|========|
|00002b80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002b90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ba0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002bb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002bc0| 3d 3d 0d 23 20 53 6f 72 | 74 69 6e 67 20 74 68 65 |==.# Sor|ting the|
|00002bd0| 20 73 65 6c 65 63 74 69 | 6f 6e 2e 0d 23 20 41 55 | selecti|on..# AU|
|00002be0| 54 48 4f 52 3a 20 44 61 | 76 69 64 20 43 2e 20 42 |THOR: Da|vid C. B|
|00002bf0| 6c 61 63 6b 09 20 62 6c | 61 63 6b 40 6d 70 64 2e |lack. bl|ack@mpd.|
|00002c00| 74 61 6e 64 65 6d 2e 63 | 6f 6d 0d 23 3d 3d 3d 3d |tandem.c|om.#====|
|00002c10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c50| 3d 3d 3d 3d 3d 3d 3d 0d | 70 72 6f 63 20 73 6f 72 |=======.|proc sor|
|00002c60| 74 4c 69 6e 65 73 20 7b | 7d 20 7b 0d 09 73 65 74 |tLines {|} {..set|
|00002c70| 20 65 6e 64 73 20 5b 67 | 65 74 45 6e 64 70 74 73 | ends [g|etEndpts|
|00002c80| 5d 0d 09 73 65 74 20 73 | 74 61 72 74 20 5b 6c 69 |]..set s|tart [li|
|00002c90| 6e 64 65 78 20 24 65 6e | 64 73 20 30 5d 0d 09 73 |ndex $en|ds 0]..s|
|00002ca0| 65 74 20 65 6e 64 20 20 | 5b 6c 69 6e 64 65 78 20 |et end |[lindex |
|00002cb0| 24 65 6e 64 73 20 31 5d | 0d 09 69 66 20 7b 24 73 |$ends 1]|..if {$s|
|00002cc0| 74 61 72 74 20 3d 3d 20 | 24 65 6e 64 7d 20 7b 0d |tart == |$end} {.|
|00002cd0| 09 09 61 6c 65 72 74 6e | 6f 74 65 20 22 59 6f 75 |..alertn|ote "You|
|00002ce0| 20 6d 75 73 74 20 68 69 | 67 68 6c 69 67 68 74 20 | must hi|ghlight |
|00002cf0| 74 68 65 20 73 65 63 74 | 69 6f 6e 20 79 6f 75 20 |the sect|ion you |
|00002d00| 77 69 73 68 20 74 6f 20 | 73 6f 72 74 2e 22 0d 09 |wish to |sort."..|
|00002d10| 09 72 65 74 75 72 6e 0d | 09 7d 0d 09 69 66 20 7b |.return.|.}..if {|
|00002d20| 5b 6c 6f 6f 6b 41 74 20 | 5b 65 78 70 72 20 24 65 |[lookAt |[expr $e|
|00002d30| 6e 64 2d 31 5d 5d 20 21 | 3d 20 22 5c 72 22 7d 20 |nd-1]] !|= "\r"} |
|00002d40| 7b 0d 09 09 61 6c 65 72 | 74 6e 6f 74 65 20 22 54 |{...aler|tnote "T|
|00002d50| 68 65 20 73 65 6c 65 63 | 74 69 6f 6e 20 6d 75 73 |he selec|tion mus|
|00002d60| 74 20 63 6f 6e 73 69 73 | 74 20 6f 6e 6c 79 20 6f |t consis|t only o|
|00002d70| 66 20 63 6f 6d 70 6c 65 | 74 65 20 6c 69 6e 65 73 |f comple|te lines|
|00002d80| 2e 22 0d 09 09 72 65 74 | 75 72 6e 0d 09 7d 0d 09 |."...ret|urn..}..|
|00002d90| 73 65 74 20 74 65 78 74 | 20 5b 67 65 74 54 65 78 |set text| [getTex|
|00002da0| 74 20 24 73 74 61 72 74 | 20 5b 65 78 70 72 20 7b |t $start| [expr {|
|00002db0| 24 65 6e 64 2d 31 7d 5d | 5d 0d 09 73 65 74 20 74 |$end-1}]|]..set t|
|00002dc0| 65 78 74 20 5b 6a 6f 69 | 6e 20 5b 6c 73 6f 72 74 |ext [joi|n [lsort|
|00002dd0| 20 5b 73 70 6c 69 74 20 | 24 74 65 78 74 20 22 5c | [split |$text "\|
|00002de0| 72 22 5d 5d 20 22 5c 72 | 22 5d 0d 09 72 65 70 6c |r"]] "\r|"]..repl|
|00002df0| 61 63 65 54 65 78 74 20 | 24 73 74 61 72 74 20 5b |aceText |$start [|
|00002e00| 65 78 70 72 20 7b 24 65 | 6e 64 2d 31 7d 5d 20 24 |expr {$e|nd-1}] $|
|00002e10| 74 65 78 74 0d 09 73 65 | 6c 65 63 74 20 24 73 74 |text..se|lect $st|
|00002e20| 61 72 74 20 24 65 6e 64 | 0d 7d 0d 0d 0d 0d 23 3d |art $end|.}....#=|
|00002e30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002e70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 23 20 44 75 6d |========|==.# Dum|
|00002e80| 70 20 61 6c 6c 20 63 75 | 72 72 65 6e 74 20 73 65 |p all cu|rrent se|
|00002e90| 74 74 69 6e 67 73 20 69 | 6e 74 6f 20 61 20 66 69 |ttings i|nto a fi|
|00002ea0| 6c 65 2e 0d 23 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |le..#===|========|
|00002eb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ec0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ed0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ee0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002ef0| 0d 70 72 6f 63 20 69 6e | 73 65 72 74 47 6c 6f 62 |.proc in|sertGlob|
|00002f00| 61 6c 53 65 74 74 69 6e | 67 73 20 7b 7d 20 7b 0d |alSettin|gs {} {.|
|00002f10| 09 75 70 6c 65 76 65 6c | 20 23 30 20 7b 0d 09 09 |.uplevel| #0 {...|
|00002f20| 66 6f 72 65 61 63 68 20 | 76 61 72 20 5b 69 6e 66 |foreach |var [inf|
|00002f30| 6f 20 67 6c 6f 62 61 6c | 73 5d 20 7b 0d 09 09 09 |o global|s] {....|
|00002f40| 69 66 20 7b 21 5b 63 61 | 74 63 68 20 7b 73 65 74 |if {![ca|tch {set|
|00002f50| 20 24 76 61 72 7d 5d 7d | 20 7b 0d 09 09 09 09 69 | $var}]}| {.....i|
|00002f60| 6e 73 65 72 74 54 65 78 | 74 20 22 73 65 74 20 22 |nsertTex|t "set "|
|00002f70| 20 24 76 61 72 20 22 20 | 5c 7b 22 20 5b 73 65 74 | $var " |\{" [set|
|00002f80| 20 24 76 61 72 5d 20 22 | 5c 7d 5c 72 22 0d 09 09 | $var] "|\}\r"...|
|00002f90| 09 7d 0d 09 09 7d 0d 09 | 7d 0d 7d 0d 0d 0d 23 3d |.}...}..|}.}...#=|
|00002fa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002fb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002fc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002fd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002fe0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00002ff0| 23 20 53 75 62 73 74 69 | 74 75 74 65 20 67 6c 6f |# Substi|tute glo|
|00003000| 62 61 6c 20 76 61 72 69 | 61 62 6c 65 73 20 69 6e |bal vari|ables in|
|00003010| 20 70 6f 73 73 69 62 6c | 79 20 6e 65 73 74 65 64 | possibl|y nested|
|00003020| 20 6c 69 73 74 2e 0d 23 | 3d 3d 3d 3d 3d 3d 3d 3d | list..#|========|
|00003030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003050| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003060| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003070| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 70 72 6f 63 20 73 75 |========|.proc su|
|00003080| 62 56 61 72 73 20 7b 77 | 6f 72 64 73 7d 20 7b 0d |bVars {w|ords} {.|
|00003090| 09 67 6c 6f 62 61 6c 20 | 73 69 6c 6c 79 0d 09 67 |.global |silly..g|
|000030a0| 6c 6f 62 61 6c 20 61 0d | 09 73 65 74 20 73 69 6c |lobal a.|.set sil|
|000030b0| 6c 79 20 24 77 6f 72 64 | 73 0d 09 73 65 74 20 6f |ly $word|s..set o|
|000030c0| 75 74 20 7b 7d 0d 09 66 | 6f 72 65 61 63 68 20 61 |ut {}..f|oreach a|
|000030d0| 20 24 77 6f 72 64 73 20 | 7b 0d 09 09 69 66 20 7b | $words |{...if {|
|000030e0| 5b 6c 6c 65 6e 67 74 68 | 20 24 61 5d 20 3d 3d 20 |[llength| $a] == |
|000030f0| 31 7d 20 7b 0d 09 09 09 | 6c 61 70 70 65 6e 64 20 |1} {....|lappend |
|00003100| 6f 75 74 20 5b 75 70 6c | 65 76 65 6c 20 23 30 20 |out [upl|evel #0 |
|00003110| 7b 65 76 61 6c 20 73 65 | 74 20 78 20 24 61 7d 5d |{eval se|t x $a}]|
|00003120| 0d 09 09 7d 20 65 6c 73 | 65 20 7b 0d 09 09 09 6c |...} els|e {....l|
|00003130| 61 70 70 65 6e 64 20 6f | 75 74 20 5b 73 75 62 56 |append o|ut [subV|
|00003140| 61 72 73 20 24 61 5d 0d | 09 09 7d 0d 09 7d 0d 09 |ars $a].|..}..}..|
|00003150| 72 65 74 75 72 6e 20 24 | 6f 75 74 0d 7d 0d 0d 23 |return $|out.}..#|
|00003160| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003170| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003180| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003190| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031b0| 0d 23 20 42 6c 6f 63 6b | 20 73 68 69 66 74 20 6c |.# Block| shift l|
|000031c0| 65 66 74 20 61 6e 64 20 | 72 69 67 68 74 2e 0d 23 |eft and |right..#|
|000031d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003200| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003210| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003220| 0d 73 65 74 20 73 68 69 | 66 74 43 68 61 72 09 22 |.set shi|ftChar."|
|00003230| 5c 74 22 0d 0d 70 72 6f | 63 20 73 68 69 66 74 4c |\t"..pro|c shiftL|
|00003240| 65 66 74 20 7b 7d 20 7b | 0d 09 67 6c 6f 62 61 6c |eft {} {|..global|
|00003250| 20 73 68 69 66 74 43 68 | 61 72 0d 09 0d 20 09 73 | shiftCh|ar... .s|
|00003260| 65 74 20 73 74 61 72 74 | 20 5b 6c 69 6e 65 53 74 |et start| [lineSt|
|00003270| 61 72 74 20 5b 67 65 74 | 50 6f 73 5d 5d 0d 20 09 |art [get|Pos]]. .|
|00003280| 73 65 74 20 65 6e 64 20 | 5b 6e 65 78 74 4c 69 6e |set end |[nextLin|
|00003290| 65 53 74 61 72 74 20 5b | 65 78 70 72 20 5b 73 65 |eStart [|expr [se|
|000032a0| 6c 45 6e 64 5d 20 2d 20 | 31 5d 5d 0d 09 69 66 20 |lEnd] - |1]]..if |
|000032b0| 7b 24 73 74 61 72 74 20 | 3e 3d 20 24 65 6e 64 7d |{$start |>= $end}|
|000032c0| 20 7b 73 65 74 20 65 6e | 64 20 5b 6e 65 78 74 4c | {set en|d [nextL|
|000032d0| 69 6e 65 53 74 61 72 74 | 20 24 73 74 61 72 74 5d |ineStart| $start]|
|000032e0| 7d 0d 09 0d 09 73 65 74 | 20 74 65 78 74 20 5b 73 |}....set| text [s|
|000032f0| 70 6c 69 74 20 5b 67 65 | 74 54 65 78 74 20 24 73 |plit [ge|tText $s|
|00003300| 74 61 72 74 20 5b 65 78 | 70 72 20 24 65 6e 64 20 |tart [ex|pr $end |
|00003310| 2d 20 31 5d 5d 20 22 5c | 72 22 5d 0d 09 0d 09 73 |- 1]] "\|r"]....s|
|00003320| 65 74 20 74 65 78 74 6f | 75 74 20 22 22 0d 09 0d |et texto|ut ""...|
|00003330| 09 66 6f 72 65 61 63 68 | 20 6c 69 6e 65 20 24 74 |.foreach| line $t|
|00003340| 65 78 74 20 7b 0d 09 09 | 69 66 20 7b 5b 73 74 72 |ext {...|if {[str|
|00003350| 69 6e 67 20 69 6e 64 65 | 78 20 24 6c 69 6e 65 20 |ing inde|x $line |
|00003360| 30 5d 20 3d 3d 20 24 73 | 68 69 66 74 43 68 61 72 |0] == $s|hiftChar|
|00003370| 7d 20 7b 0d 09 09 09 6c | 61 70 70 65 6e 64 20 74 |} {....l|append t|
|00003380| 65 78 74 6f 75 74 20 5b | 73 74 72 69 6e 67 20 72 |extout [|string r|
|00003390| 61 6e 67 65 20 24 6c 69 | 6e 65 20 31 20 65 6e 64 |ange $li|ne 1 end|
|000033a0| 5d 0d 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |]...} el|se {....|
|000033b0| 6c 61 70 70 65 6e 64 20 | 74 65 78 74 6f 75 74 20 |lappend |textout |
|000033c0| 24 6c 69 6e 65 0d 09 09 | 7d 0d 09 7d 0d 0d 09 73 |$line...|}..}...s|
|000033d0| 65 74 20 74 65 78 74 20 | 5b 6a 6f 69 6e 20 24 74 |et text |[join $t|
|000033e0| 65 78 74 6f 75 74 20 22 | 5c 72 22 5d 09 0d 09 72 |extout "|\r"]...r|
|000033f0| 65 70 6c 61 63 65 54 65 | 78 74 20 24 73 74 61 72 |eplaceTe|xt $star|
|00003400| 74 20 5b 65 78 70 72 20 | 24 65 6e 64 20 2d 20 31 |t [expr |$end - 1|
|00003410| 5d 20 24 74 65 78 74 0d | 09 73 65 6c 65 63 74 20 |] $text.|.select |
|00003420| 24 73 74 61 72 74 20 5b | 65 78 70 72 20 31 20 2b |$start [|expr 1 +|
|00003430| 20 24 73 74 61 72 74 20 | 2b 20 5b 73 74 72 69 6e | $start |+ [strin|
|00003440| 67 20 6c 65 6e 67 74 68 | 20 24 74 65 78 74 5d 5d |g length| $text]]|
|00003450| 0d 7d 0d 0d 0d 70 72 6f | 63 20 73 68 69 66 74 52 |.}...pro|c shiftR|
|00003460| 69 67 68 74 20 7b 7d 20 | 7b 0d 09 67 6c 6f 62 61 |ight {} |{..globa|
|00003470| 6c 09 73 68 69 66 74 43 | 68 61 72 0d 09 0d 09 73 |l.shiftC|har....s|
|00003480| 65 74 20 73 74 61 72 74 | 20 5b 6c 69 6e 65 53 74 |et start| [lineSt|
|00003490| 61 72 74 20 5b 67 65 74 | 50 6f 73 5d 5d 0d 09 73 |art [get|Pos]]..s|
|000034a0| 65 74 20 65 6e 64 20 5b | 6e 65 78 74 4c 69 6e 65 |et end [|nextLine|
|000034b0| 53 74 61 72 74 20 5b 65 | 78 70 72 20 5b 73 65 6c |Start [e|xpr [sel|
|000034c0| 45 6e 64 5d 20 2d 20 31 | 5d 5d 0d 09 69 66 20 7b |End] - 1|]]..if {|
|000034d0| 24 73 74 61 72 74 20 3e | 3d 20 24 65 6e 64 7d 20 |$start >|= $end} |
|000034e0| 7b 73 65 74 20 65 6e 64 | 20 5b 6e 65 78 74 4c 69 |{set end| [nextLi|
|000034f0| 6e 65 53 74 61 72 74 20 | 24 73 74 61 72 74 5d 7d |neStart |$start]}|
|00003500| 0d 09 0d 09 73 65 74 20 | 74 65 78 74 20 5b 73 70 |....set |text [sp|
|00003510| 6c 69 74 20 5b 67 65 74 | 54 65 78 74 20 24 73 74 |lit [get|Text $st|
|00003520| 61 72 74 20 5b 65 78 70 | 72 20 24 65 6e 64 20 2d |art [exp|r $end -|
|00003530| 20 31 5d 5d 20 22 5c 72 | 22 5d 0d 09 0d 09 73 65 | 1]] "\r|"]....se|
|00003540| 74 20 74 65 78 74 6f 75 | 74 20 22 22 0d 09 0d 09 |t textou|t ""....|
|00003550| 66 6f 72 65 61 63 68 20 | 6c 69 6e 65 20 24 74 65 |foreach |line $te|
|00003560| 78 74 20 7b 0d 09 09 6c | 61 70 70 65 6e 64 20 74 |xt {...l|append t|
|00003570| 65 78 74 6f 75 74 20 24 | 73 68 69 66 74 43 68 61 |extout $|shiftCha|
|00003580| 72 24 6c 69 6e 65 0d 09 | 7d 0d 09 0d 09 73 65 74 |r$line..|}....set|
|00003590| 20 74 65 78 74 20 5b 6a | 6f 69 6e 20 24 74 65 78 | text [j|oin $tex|
|000035a0| 74 6f 75 74 20 22 5c 72 | 22 5d 09 0d 09 72 65 70 |tout "\r|"]...rep|
|000035b0| 6c 61 63 65 54 65 78 74 | 20 24 73 74 61 72 74 20 |laceText| $start |
|000035c0| 5b 65 78 70 72 20 24 65 | 6e 64 20 2d 20 31 5d 20 |[expr $e|nd - 1] |
|000035d0| 24 74 65 78 74 0d 09 73 | 65 6c 65 63 74 20 24 73 |$text..s|elect $s|
|000035e0| 74 61 72 74 20 5b 65 78 | 70 72 20 31 20 2b 20 24 |tart [ex|pr 1 + $|
|000035f0| 73 74 61 72 74 20 2b 20 | 5b 73 74 72 69 6e 67 20 |start + |[string |
|00003600| 6c 65 6e 67 74 68 20 24 | 74 65 78 74 5d 5d 0d 7d |length $|text]].}|
|00003610| 0d 0d 0d 0d 23 20 72 67 | 6c 6f 62 20 5b 6f 70 74 |....# rg|lob [opt|
|00003620| 69 6f 6e 20 6c 69 73 74 | 5d 20 64 69 72 20 70 61 |ion list|] dir pa|
|00003630| 74 0d 23 20 27 64 69 72 | 27 20 73 68 6f 75 6c 64 |t.# 'dir|' should|
|00003640| 20 62 65 20 61 20 70 72 | 6f 70 65 72 6c 79 20 66 | be a pr|operly f|
|00003650| 6f 72 6d 65 64 20 64 69 | 72 65 63 74 6f 72 79 2c |ormed di|rectory,|
|00003660| 20 65 6e 64 69 6e 67 20 | 77 2f 20 61 20 27 3a 27 | ending |w/ a ':'|
|00003670| 2e 20 27 70 61 74 27 20 | 73 68 6f 75 6c 64 20 62 |. 'pat' |should b|
|00003680| 65 20 0d 23 20 61 20 73 | 69 6d 70 6c 65 20 70 61 |e .# a s|imple pa|
|00003690| 74 74 65 72 6e 20 77 2f | 20 6e 6f 20 64 69 72 65 |ttern w/| no dire|
|000036a0| 63 74 6f 72 79 20 73 70 | 65 63 69 66 69 63 61 74 |ctory sp|ecificat|
|000036b0| 69 6f 6e 73 20 28 69 2e | 65 2e 20 22 2a 2e 63 22 |ions (i.|e. "*.c"|
|000036c0| 29 2e 0d 70 72 6f 63 20 | 72 67 6c 6f 62 20 7b 6f |)..proc |rglob {o|
|000036d0| 70 74 6c 69 73 74 20 64 | 69 72 20 70 61 74 7d 20 |ptlist d|ir pat} |
|000036e0| 7b 0d 0d 09 73 65 74 20 | 63 6d 64 20 5b 63 6f 6e |{...set |cmd [con|
|000036f0| 63 61 74 20 67 6c 6f 62 | 20 24 6f 70 74 6c 69 73 |cat glob| $optlis|
|00003700| 74 5d 0d 09 6c 61 70 70 | 65 6e 64 20 63 6d 64 20 |t]..lapp|end cmd |
|00003710| 24 64 69 72 24 70 61 74 | 0d 09 69 66 20 7b 5b 63 |$dir$pat|..if {[c|
|00003720| 61 74 63 68 20 7b 65 76 | 61 6c 20 24 63 6d 64 7d |atch {ev|al $cmd}|
|00003730| 20 66 69 6c 65 73 5d 7d | 20 7b 0d 09 09 73 65 74 | files]}| {...set|
|00003740| 20 66 69 6c 65 73 20 22 | 22 0d 09 7d 0d 09 0d 09 | files "|"..}....|
|00003750| 69 66 20 7b 21 5b 63 61 | 74 63 68 20 7b 67 6c 6f |if {![ca|tch {glo|
|00003760| 62 20 24 64 69 72 2a 7d | 20 61 6c 6c 5d 7d 20 7b |b $dir*}| all]} {|
|00003770| 0d 09 09 66 6f 72 65 61 | 63 68 20 66 20 24 61 6c |...forea|ch f $al|
|00003780| 6c 20 7b 0d 09 09 09 69 | 66 20 7b 5b 66 69 6c 65 |l {....i|f {[file|
|00003790| 20 69 73 64 69 72 20 24 | 66 5d 7d 20 7b 0d 09 09 | isdir $|f]} {...|
|000037a0| 09 09 73 65 74 20 66 69 | 6c 65 73 20 5b 63 6f 6e |..set fi|les [con|
|000037b0| 63 61 74 20 24 66 69 6c | 65 73 20 5b 72 67 6c 6f |cat $fil|es [rglo|
|000037c0| 62 20 24 6f 70 74 6c 69 | 73 74 20 24 66 3a 20 24 |b $optli|st $f: $|
|000037d0| 70 61 74 5d 5d 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 |pat]]...|.}...}..|
|000037e0| 7d 0d 09 72 65 74 75 72 | 6e 20 24 66 69 6c 65 73 |}..retur|n $files|
|000037f0| 0d 7d 0d 0d 0d 70 72 6f | 63 20 73 77 69 74 63 68 |.}...pro|c switch|
|00003800| 41 70 70 20 7b 7d 20 7b | 0d 09 73 65 74 20 70 72 |App {} {|..set pr|
|00003810| 6f 63 73 20 22 22 0d 09 | 66 6f 72 65 61 63 68 20 |ocs ""..|foreach |
|00003820| 70 20 5b 70 72 6f 63 65 | 73 73 65 73 5d 20 7b 0d |p [proce|sses] {.|
|00003830| 09 09 6c 61 70 70 65 6e | 64 20 70 72 6f 63 73 20 |..lappen|d procs |
|00003840| 5b 6c 69 6e 64 65 78 20 | 24 70 20 30 5d 0d 09 7d |[lindex |$p 0]..}|
|00003850| 0d 09 73 65 74 20 74 6f | 20 5b 6c 69 73 74 70 69 |..set to| [listpi|
|00003860| 63 6b 20 2d 70 20 22 53 | 77 69 74 63 68 20 74 6f |ck -p "S|witch to|
|00003870| 20 61 70 70 3a 22 20 24 | 70 72 6f 63 73 5d 0d 09 | app:" $|procs]..|
|00003880| 69 66 20 7b 5b 73 74 72 | 69 6e 67 20 6c 65 6e 67 |if {[str|ing leng|
|00003890| 74 68 20 24 74 6f 5d 7d | 20 7b 0d 09 09 73 77 69 |th $to]}| {...swi|
|000038a0| 74 63 68 54 6f 20 24 74 | 6f 0d 09 7d 0d 7d 0d 0d |tchTo $t|o..}.}..|
|000038b0| 0d 70 72 6f 63 20 73 65 | 6c 65 63 74 41 6c 6c 20 |.proc se|lectAll |
|000038c0| 7b 7d 20 7b 0d 09 73 65 | 6c 65 63 74 20 30 20 5b |{} {..se|lect 0 [|
|000038d0| 6d 61 78 50 6f 73 5d 0d | 7d 0d 0d 0d 00 00 00 00 |maxPos].|}.......|
|000038e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000038f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003900| 00 00 01 00 00 00 02 d0 | 00 00 01 d0 00 00 00 42 |........|.......B|
|00003910| 20 7b 5b 6c 69 6e 64 65 | 78 20 5b 70 6f 73 54 6f | {[linde|x [posTo|
|00003920| 52 6f 77 43 6f 6c 20 5b | 73 65 6c 45 6e 64 5d 5d |RowCol [|selEnd]]|
|00003930| 08 6d 69 73 63 2e 74 63 | 6c 00 02 00 02 00 54 45 |.misc.tc|l.....TE|
|00003940| 58 54 41 4c 46 41 01 00 | 00 68 00 00 00 00 00 00 |XTALFA..|.h......|
|00003950| 02 00 54 45 58 54 41 4c | 46 41 01 00 00 68 00 00 |..TEXTAL|FA...h..|
|00003960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003970| 00 00 aa 27 ef a3 00 00 | 38 5c 00 00 03 12 65 74 |...'....|8\....et|
|00003980| 20 63 68 61 72 73 20 5b | 6d 61 78 50 6f 73 5d 0d | chars [|maxPos].|
|00003990| 09 09 73 65 74 20 6c 69 | 6e 65 73 20 5b 6c 69 6e |..set li|nes [lin|
|000039a0| 64 65 78 20 5b 70 6f 73 | 54 6f 52 6f 77 43 6f 6c |dex [pos|ToRowCol|
|000039b0| 20 24 63 68 61 72 73 5d | 20 30 5d 0d 09 09 73 65 | $chars]| 0]...se|
|000039c0| 74 20 74 65 78 74 20 5b | 67 65 74 54 65 78 74 20 |t text [|getText |
|000039d0| 30 20 5b 6d 61 78 50 6f | 73 5d 5d 0d 09 7d 0d 09 |0 [maxPo|s]]..}..|
|000039e0| 69 66 20 7b 5b 72 65 67 | 73 75 62 20 2d 61 6c 6c |if {[reg|sub -all|
|000039f0| 20 7b 5b 21 3d 3b 2e 2c | 5c 28 5c 29 3a 5c 7b 5c | {[!=;.,|\(\):\{\|
|00003a00| 00 00 01 80 00 13 00 00 | 09 fd 00 00 09 fd 0b 63 |........|.......c|
|00003a10| 6f 6d 6d 65 6e 74 42 6f | 78 00 00 00 2a db 00 00 |ommentBo|x...*...|
|00003a20| 2a db 0b 63 6f 6d 6d 65 | 6e 74 50 61 72 61 00 00 |*..comme|ntPara..|
|00003a30| 2d ae 00 00 2d ae 0f 63 | 6f 6d 70 61 72 65 57 69 |-...-..c|ompareWi|
|00003a40| 6e 64 6f 77 73 00 00 00 | 2e 71 00 00 2e 71 15 69 |ndows...|.q...q.i|
|00003a50| 6e 73 65 72 74 47 6c 6f | 62 61 6c 53 65 74 74 69 |nsertGlo|balSetti|
|00003a60| 6e 67 73 00 00 00 04 98 | 00 00 04 98 0d 6d 61 74 |ngs.....|.....mat|
|00003a70| 63 68 69 6e 67 4c 69 6e | 65 73 00 00 29 05 00 00 |chingLin|es..)...|
|00003a80| 29 05 09 6e 65 78 74 46 | 75 6e 63 00 00 00 29 29 |)..nextF|unc...))|
|00003a90| 00 00 29 29 09 70 72 65 | 76 46 75 6e 63 00 00 00 |..)).pre|vFunc...|
|00003aa0| 36 43 00 00 36 43 05 72 | 67 6c 6f 62 00 00 29 4d |6C..6C.r|glob..)M|
|00003ab0| 00 00 29 4d 0b 73 65 61 | 72 63 68 46 75 6e 63 00 |..)M.sea|rchFunc.|
|00003ac0| 00 00 38 31 00 00 38 31 | 09 73 65 6c 65 63 74 41 |..81..81|.selectA|
|00003ad0| 6c 6c 00 00 31 b5 00 00 | 31 b5 09 73 68 69 66 74 |ll..1...|1..shift|
|00003ae0| 4c 65 66 74 00 00 33 d5 | 00 00 33 d5 0b 73 68 69 |Left..3.|..3..shi|
|00003af0| 66 74 52 69 67 68 74 00 | 00 00 2b d8 00 00 2b d8 |ftRight.|..+...+.|
|00003b00| 09 73 6f 72 74 4c 69 6e | 65 73 00 00 2f f9 00 00 |.sortLin|es../...|
|00003b10| 2f f9 07 73 75 62 56 61 | 72 73 00 00 37 75 00 00 |/..subVa|rs..7u..|
|00003b20| 37 75 09 73 77 69 74 63 | 68 41 70 70 00 00 28 38 |7u.switc|hApp..(8|
|00003b30| 00 00 28 38 0f 74 72 61 | 6e 73 70 6f 73 65 43 68 |..(8.tra|nsposeCh|
|00003b40| 61 72 73 00 00 00 27 49 | 00 00 27 49 0f 74 72 61 |ars...'I|..'I.tra|
|00003b50| 6e 73 70 6f 73 65 57 6f | 72 64 73 00 00 00 18 cb |nsposeWo|rds.....|
|00003b60| 00 00 18 cb 0d 75 6e 63 | 6f 6d 6d 65 6e 74 42 6f |.....unc|ommentBo|
|00003b70| 78 00 00 00 00 c5 00 00 | 00 c5 09 77 6f 72 64 43 |x.......|...wordC|
|00003b80| 6f 75 6e 74 00 00 00 48 | 00 09 4d 6f 6e 61 63 6f |ount...H|..Monaco|
|00003b90| 00 00 00 dd c7 d8 00 00 | 00 00 00 f4 cc a2 00 03 |........|........|
|00003ba0| 22 52 03 0d 00 f0 4e 7c | 00 00 00 04 00 04 00 28 |"R....N||.......(|
|00003bb0| 00 03 01 ca 02 79 00 28 | 00 03 01 ca 02 79 aa a2 |.....y.(|.....y..|
|00003bc0| 79 e5 00 00 36 43 00 00 | 36 43 00 00 36 43 01 00 |y...6C..|6C..6C..|
|00003bd0| 00 00 01 00 00 00 02 d0 | 00 00 01 d0 00 00 00 42 |........|.......B|
|00003be0| 00 dd c7 d8 0e 54 00 00 | 00 1c 00 3e 00 00 4d 50 |.....T..|...>..MP|
|00003bf0| 53 52 00 01 00 0a 03 ef | 00 00 00 00 00 00 00 00 |SR......|........|
|00003c00| 00 00 03 ed ff ff 00 00 | 01 84 00 e1 9f a0 03 74 |........|.......t|
|00003c10| 61 62 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |ab......|........|
|00003c20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003c30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003c40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003c50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003c60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003c70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+